@font-face{font-family:GenSenRounded;src:url(https://lab.helloruru.com/fonts/GenSenRounded-Regular.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:GenSenRounded;src:url(https://lab.helloruru.com/fonts/GenSenRounded-Medium.woff2)format("woff2");font-weight:500;font-display:swap}@font-face{font-family:GenSenRounded;src:url(https://lab.helloruru.com/fonts/GenSenRounded-Bold.woff2)format("woff2");font-weight:700;font-display:swap}:root{--rose:#d4a5a5;--rose-soft:#f7eded;--lavender:#b8a9c9;--brown:#6d5954;--ink:#352f31;--muted:#746b6e;--line:#e7e1e3;--panel:#fff;--canvas:#f5f3f4;--danger:#a94747;--shadow:0 8px 26px #6d59541a;color:var(--ink);background:var(--canvas);font-family:GenSenRounded,Noto Sans TC,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}button,input,textarea,select{font:inherit}button,a{color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}:focus-visible{outline-offset:2px;outline:3px solid #b8a9c985}.visually-hidden{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.primary-button,.secondary-button,.new-article-button{white-space:nowrap;border:1px solid #0000;border-radius:9px;justify-content:center;align-items:center;gap:7px;padding:9px 14px;font-weight:700;display:inline-flex}.primary-button{background:var(--brown);color:#fff;box-shadow:0 3px 10px #6d59542e}.primary-button:hover:not(:disabled){background:#594844}.secondary-button{border-color:var(--line);background:#fff}.secondary-button:hover{background:var(--rose-soft)}.icon-button,.toolbar-button{background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;padding:0;display:inline-flex}.icon-button:hover,.toolbar-button:hover{background:var(--rose-soft)}.editor-app{grid-template-rows:64px minmax(0,1fr);grid-template-columns:248px minmax(0,1fr) 0;height:100vh;transition:grid-template-columns .18s;display:grid;overflow:hidden}.editor-app.sidebar-collapsed{grid-template-columns:0 minmax(0,1fr) 0}.editor-app.settings-visible{grid-template-columns:248px minmax(0,1fr) 312px}.editor-app.sidebar-collapsed.settings-visible{grid-template-columns:0 minmax(0,1fr) 312px}.app-header{border-bottom:1px solid var(--line);z-index:20;background:#fffffff5;grid-area:1/1/auto/-1;justify-content:space-between;align-items:center;gap:20px;padding:0 18px;display:flex}.brand-group,.header-actions{align-items:center;gap:10px;display:flex}.brand-name{color:var(--brown);font-size:12px;font-weight:700;line-height:1;display:block}.brand-group h1{margin:4px 0 0;font-size:17px;line-height:1.2}.header-actions{min-width:0}.save-state{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:360px;font-size:13px;overflow:hidden}.mobile-only{display:none}.article-sidebar{border-right:1px solid var(--line);background:#fbfafb;grid-area:2/1;padding:16px 12px;transition:transform .18s;overflow:auto}.sidebar-collapsed .article-sidebar{pointer-events:none;transform:translate(-100%)}.sidebar-header,.settings-header{justify-content:space-between;align-items:center;height:40px;padding:0 4px;display:flex}.new-article-button{background:var(--rose-soft);width:100%;color:var(--brown);border-color:#ead2d2;margin:8px 0 14px}.article-sidebar nav{flex-direction:column;gap:3px;display:flex}.article-item{text-align:left;color:#5e5659;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;border-radius:8px;padding:9px 10px;font-size:13px;overflow:hidden}.article-item:hover{background:#f1edef}.article-item.active{color:var(--brown);background:#eadfe0;font-weight:700}.sidebar-restore{z-index:15;border:1px solid var(--line);width:34px;height:34px;box-shadow:var(--shadow);background:#fff;border-radius:8px;place-items:center;display:grid;position:fixed;top:76px;left:8px}.workspace{grid-area:2/2;grid-template-rows:48px minmax(0,1fr);min-width:0;display:grid;overflow:hidden}.editor-toolbar{border-bottom:1px solid var(--line);scrollbar-width:thin;background:#fff;align-items:center;gap:2px;padding:6px 14px;display:flex;overflow-x:auto}.toolbar-divider{background:var(--line);flex:none;width:1px;height:24px;margin:0 5px}.canvas-area{background:var(--canvas);padding:34px max(24px,50% - 425px);overflow:auto}.document-sheet{background:#fff;border:1px solid #ece7e8;border-radius:4px;width:min(100%,850px);min-height:calc(100vh - 180px);margin:0 auto;padding:58px clamp(34px,8vw,82px) 90px;box-shadow:0 3px 18px #44363a14}.article-title{width:100%;color:var(--ink);background:0 0;border:0;border-bottom:1px solid #0000;padding:0 0 12px;font-size:32px;font-weight:700;line-height:1.35;display:block}.article-title:hover,.article-title:focus{border-bottom-color:var(--line);outline:0}.article-title::placeholder{color:#b6adb0}.document-meta{color:#91878a;border-bottom:1px solid #f0ecee;align-items:center;gap:14px;margin:4px 0 30px;padding-bottom:15px;font-size:12px;display:flex}.milkdown{min-height:500px}.milkdown .ProseMirror{color:#413a3d;outline:0;min-height:500px;font-family:GenSenRounded,Noto Sans TC,sans-serif;font-size:17px;line-height:1.95}.milkdown .ProseMirror p{margin:0 0 1.1em}.milkdown .ProseMirror h1{font-size:30px}.milkdown .ProseMirror h2{margin:2em 0 .75em;font-size:25px}.milkdown .ProseMirror h3{margin:1.7em 0 .65em;font-size:21px}.milkdown .ProseMirror a{color:#4e6878;text-underline-offset:3px;text-decoration-thickness:1px}.milkdown .ProseMirror blockquote{border-left:4px solid var(--rose);color:#5b5054;background:#faf5f5;margin:1.5em 0;padding:12px 18px}.milkdown .ProseMirror img{border-radius:8px;max-width:100%;height:auto;margin:24px auto;display:block}.milkdown .ProseMirror table{border-collapse:collapse;width:100%;margin:24px 0}.milkdown .ProseMirror th,.milkdown .ProseMirror td{text-align:left;border:1px solid #ded7da;padding:9px 11px}.milkdown .ProseMirror th{background:#f5eff1}.milkdown .ProseMirror hr{border:0;border-top:1px solid var(--line);margin:32px 0}.milkdown .ProseMirror-selectednode{outline:3px solid #b8a9c980}.empty-state{text-align:center;min-height:calc(100vh - 180px);color:var(--muted);flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-state h2{color:var(--ink);margin:17px 0 4px;font-size:22px}.empty-state p{margin:0 0 22px}.settings-drawer{border-left:1px solid var(--line);visibility:hidden;background:#fff;grid-area:2/3;padding:16px 18px;transition:transform .18s,visibility .18s;overflow:auto;transform:translate(100%)}.settings-visible .settings-drawer{visibility:visible;transform:none}.settings-fields{flex-direction:column;gap:17px;padding-top:14px;display:flex}.settings-fields label:not(.check-row){flex-direction:column;gap:7px;font-size:13px;font-weight:700;display:flex}.settings-fields input,.settings-fields textarea,.settings-fields select,.password-field input{width:100%;color:var(--ink);background:#fff;border:1px solid #dcd4d7;border-radius:8px;padding:10px 11px}.settings-fields textarea{resize:vertical;line-height:1.55}.settings-fields small{color:var(--muted);align-self:flex-end;font-weight:400}.check-row{align-items:center;gap:9px;font-size:14px;display:flex}.check-row input{width:17px;height:17px;accent-color:var(--brown)}.pending-note{background:var(--rose-soft);border-radius:8px;padding:10px 12px;font-size:13px}.settings-empty{color:var(--muted);font-size:13px}.login-page{background:#f7f4f5;place-items:center;min-height:100vh;padding:24px;display:grid}.login-panel{border:1px solid var(--line);width:min(100%,420px);box-shadow:var(--shadow);background:#fff;border-radius:14px;padding:42px}.login-brand{color:var(--brown);letter-spacing:.05em;font-weight:700}.login-panel h1{margin:10px 0 8px;font-size:27px}.login-panel>p{color:var(--muted);margin:0 0 30px;line-height:1.6}.login-panel label{margin-bottom:8px;font-size:14px;font-weight:700;display:block}.password-field{border:1px solid #dcd4d7;border-radius:9px;display:flex;overflow:hidden}.password-field:focus-within{border-color:var(--lavender);box-shadow:0 0 0 3px #b8a9c933}.password-field input{border:0;border-radius:0;outline:0}.password-field button{color:var(--brown);background:#fff;border:0;padding:0 13px;font-size:13px;font-weight:700}.login-submit{width:100%;margin-top:17px;padding:11px}.login-message{min-height:24px;color:var(--danger);text-align:center;margin:12px 0 0;font-size:13px}@media (width<=1000px){.editor-app.settings-visible,.editor-app.sidebar-collapsed.settings-visible{grid-template-columns:248px minmax(0,1fr)}.settings-drawer{z-index:30;width:min(90vw,340px);position:fixed;top:64px;bottom:0;right:0;box-shadow:-10px 0 30px #44363a1a}.save-state{display:none}}@media (width<=720px){.mobile-only{display:inline-flex}.editor-app,.editor-app.sidebar-collapsed,.editor-app.settings-visible,.editor-app.sidebar-collapsed.settings-visible{grid-template-columns:1fr}.article-sidebar{z-index:35;width:min(84vw,280px);position:fixed;top:64px;bottom:0;left:0;box-shadow:10px 0 30px #44363a1f}.sidebar-collapsed .article-sidebar{transform:translate(-105%)}.workspace{grid-column:1}.app-header{padding:0 10px}.brand-group h1{font-size:15px}.brand-name{display:none}.header-actions .secondary-button{width:38px;padding:0;font-size:0}.header-actions .secondary-button svg{width:18px;height:18px}.header-actions .primary-button{padding:8px 10px;font-size:13px}.header-actions>a{display:none}.canvas-area{padding:14px 8px}.document-sheet{border-radius:2px;padding:34px 22px 70px}.article-title{font-size:26px}.editor-toolbar{padding-inline:8px}.sidebar-restore{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important}}
