:root{color-scheme:light;font-family:Noto Sans TC,PingFang TC,Microsoft JhengHei,sans-serif;color:#252823;background:#f7f6f1;font-synthesis:none;--paper: #fdfcf8;--paper-warm: #f7f6f1;--paper-deep: #f0f0ea;--ink: #252823;--muted: #777b73;--faint: #a7aaa3;--line: #dedfd8;--line-soft: #e9e9e3;--green: #47704c;--green-dark: #345a3b;--green-soft: #e8eee5;--green-tint: #f1f5ef;--terracotta: #cb6838;--danger: #a94438;--ui-size: 14px;--serif: "Noto Serif TC", "Songti TC", "PMingLiU", serif}*{box-sizing:border-box}html,body,#root{margin:0;width:100%;min-width:320px;min-height:100%}body{min-height:100vh;overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}button{border:0;background:none;cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[contenteditable]:focus-visible{outline:2px solid color-mix(in srgb,var(--green) 72%,white);outline-offset:2px}.app-shell{display:grid;grid-template-columns:220px 300px minmax(520px,1fr) 230px;width:100vw;height:100vh;min-height:680px;background:var(--paper);overflow:hidden}.app-shell.archive-mode{grid-template-columns:220px 300px minmax(520px,1fr)}.app-shell.focus-mode{grid-template-columns:minmax(0,1fr);min-height:0}.app-shell.focus-mode .editor-topbar{min-height:64px}.app-shell.focus-mode .editor-heading{padding:30px max(7vw,calc((100vw - 1100px)/2)) 18px}.app-shell.focus-mode .editor-heading textarea{min-height:56px;font-size:clamp(32px,3vw,46px);line-height:1.25}.app-shell.focus-mode .note-meta{margin-top:4px}.app-shell.focus-mode .editor-toolbar{min-height:54px;padding-inline:max(7vw,calc((100vw - 1100px)/2))}.app-shell.focus-mode .content-editor{padding:32px max(7vw,calc((100vw - 1100px)/2)) 100px;font-size:clamp(17px,1.35vw,20px);line-height:2}.app-shell.focus-mode .content-editor h2{font-size:29px}.app-shell.focus-mode .content-editor h3{font-size:22px}.app-shell.focus-mode .context-mobile-button{display:none}.auth-shell{display:grid;grid-template-columns:minmax(420px,560px) minmax(440px,1fr);width:100vw;min-height:100vh;background:var(--paper);overflow:auto}.auth-panel{display:flex;flex-direction:column;width:min(100%,470px);min-height:100vh;margin:0 auto;padding:42px 42px 30px}.auth-brand{display:flex;align-items:center;gap:8px;color:var(--ink);font-family:var(--serif);font-size:22px;font-weight:700;letter-spacing:.08em}.auth-brand .brand-mark{width:30px}.auth-copy{margin-top:auto;padding-top:54px}.auth-eyebrow{color:var(--green);font-size:12px;font-weight:700;letter-spacing:.18em}.auth-copy h1{margin:12px 0 10px;font-family:var(--serif);font-size:clamp(30px,3vw,42px);line-height:1.25}.auth-copy p{margin:0;color:var(--muted);font-size:14px;line-height:1.8}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-top:30px;padding:4px;border-radius:8px;background:var(--paper-deep)}.auth-tabs button{height:38px;border-radius:6px;color:var(--muted);font-size:13px;font-weight:600}.auth-tabs button.active{color:var(--green-dark);background:#fff;box-shadow:0 2px 8px #222b2214}.auth-form{display:grid;gap:16px;margin-top:22px}.auth-form label>span{display:block;margin:0 0 7px;color:#4d514c;font-size:12px;font-weight:600}.auth-form label>div{display:flex;align-items:center;gap:10px;height:45px;padding:0 12px;border:1px solid #ced1ca;border-radius:7px;color:#777c75;background:#fff;transition:border .15s ease,box-shadow .15s ease}.auth-form label>div:focus-within{border-color:var(--green);box-shadow:0 0 0 3px #47704c17}.auth-form input{width:100%;min-width:0;border:0;outline:0;background:transparent;font-size:14px}.password-toggle{display:grid;flex:none;place-items:center;padding:4px;color:var(--muted)}.auth-error{padding:10px 12px;border:1px solid #e2bdb7;border-radius:6px;color:var(--danger);background:#fff5f3;font-size:12px;line-height:1.5}.auth-notice{display:flex;align-items:flex-start;gap:8px;margin-top:16px;padding:11px 12px;border:1px solid #b8cbb7;border-radius:7px;color:var(--green-dark);background:var(--green-tint);font-size:12px;line-height:1.55}.auth-notice svg{flex:none;margin-top:1px}.auth-notice+.auth-form{margin-top:16px}.legacy-note{margin:-3px 0 0;color:var(--muted);font-size:11px;line-height:1.6}.auth-submit{display:flex;align-items:center;justify-content:center;gap:9px;height:46px;margin-top:2px;border-radius:7px;color:#fff;background:var(--green);font-size:14px;font-weight:700;letter-spacing:.04em;transition:background .16s ease,transform .16s ease}.auth-submit:hover{background:var(--green-dark)}.auth-submit:active{transform:translateY(1px)}.auth-submit:disabled{cursor:wait;opacity:.72}.auth-security{display:flex;align-items:flex-start;gap:7px;margin-top:18px;color:var(--faint);font-size:10px;line-height:1.55}.auth-security svg{flex:none;color:var(--green)}.auth-aside{display:grid;place-items:center;min-height:100vh;padding:70px;color:#f6f5ed;background:linear-gradient(145deg,#23402af5,#345a3beb),repeating-linear-gradient(135deg,transparent 0 28px,rgba(255,255,255,.035) 29px 30px)}.auth-aside>div{width:min(100%,570px)}.auth-aside span{color:#d7e1d5;font-size:12px;font-weight:700;letter-spacing:.22em}.auth-aside blockquote{margin:24px 0 46px;font-family:var(--serif);font-size:clamp(27px,3vw,44px);font-weight:700;line-height:1.55}.auth-aside ul{display:grid;gap:17px;margin:0;padding:0;list-style:none;color:#e7ece5;font-size:13px}.auth-aside li{display:flex;align-items:center;gap:11px}.auth-aside li i{width:8px;height:8px;border:2px solid #c7d7c3;border-radius:50%}.nav-sidebar,.notes-rail,.editor,.study-panel{min-width:0}.nav-sidebar,.notes-rail{border-right:1px solid var(--line)}.nav-sidebar{position:relative;display:flex;flex-direction:column;min-height:0;padding:28px 14px 20px;background:var(--paper-warm);overflow:hidden}.brand{display:flex;align-items:center;min-width:0;gap:8px;padding:0 12px;overflow:hidden;font-family:var(--serif);font-size:22px;font-weight:700;letter-spacing:.08em;white-space:nowrap}.brand>span{min-width:0;overflow:hidden;text-overflow:ellipsis}.brand-mark{display:grid;flex:none;place-items:center;width:30px;height:34px}.brand-mark img{display:block;width:100%;height:100%;object-fit:contain}.new-note-button{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;height:46px;margin:30px 0 22px;border-radius:7px;color:#fff;background:var(--green);font-size:14px;font-weight:600;letter-spacing:.04em;transition:background .16s ease,transform .16s ease}.new-note-button:hover{background:var(--green-dark)}.new-note-button:active{transform:translateY(1px)}.primary-nav,.collection-nav{display:flex;flex-direction:column;gap:4px}.brand,.new-note-button,.primary-nav,.collection-heading,.collection-form,.admin-nav-button,.account-card{flex:none}.collection-nav{flex:1 1 auto;min-height:0;margin:0 -10px 0 -14px;padding:0 10px 8px 14px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-color:#c4c9c1 transparent;scrollbar-width:thin}.collection-nav::-webkit-scrollbar{width:6px}.collection-nav::-webkit-scrollbar-thumb{border-radius:6px;background:#c4c9c1}.primary-nav button,.collection-select-button{position:relative;display:flex;align-items:center;gap:12px;width:100%;min-height:43px;padding:0 13px;border-radius:7px;color:#3d413d;font-size:var(--ui-size);text-align:left;transition:background .15s ease,color .15s ease}.collection-item{position:relative;min-width:0}.collection-select-button{padding-right:64px}.collection-select-button>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.collection-move-controls{position:absolute;top:50%;right:5px;display:flex;gap:1px;transform:translateY(-50%);opacity:0;pointer-events:none;transition:opacity .14s ease}.collection-item:hover .collection-move-controls,.collection-item:focus-within .collection-move-controls,.collection-item.active .collection-move-controls{opacity:1;pointer-events:auto}.collection-move-button{display:grid;place-items:center;width:25px;height:27px;border-radius:5px;color:#596158;background:#fafaf7e0}.collection-move-button:hover:not(:disabled){color:var(--green-dark);background:#fff}.collection-move-button:disabled{opacity:.28;cursor:default}.primary-nav button:hover,.collection-select-button:hover{background:#eceee8}.primary-nav button.active,.collection-select-button.active{color:var(--green-dark);background:var(--green-soft)}.primary-nav button.active:before,.collection-select-button.active:before{content:"";position:absolute;inset:6px auto 6px -14px;width:3px;border-radius:0 2px 2px 0;background:var(--green)}@media(hover:none),(max-width:860px){.collection-move-controls{opacity:1;pointer-events:auto}}.collection-heading{display:flex;align-items:center;justify-content:space-between;margin:30px 8px 10px;color:#42453f;font-family:var(--serif);font-size:15px;font-weight:700}.collection-heading button{display:grid;place-items:center;width:28px;height:28px;border-radius:50%}.collection-heading button:hover{background:var(--paper-deep)}.collection-form{display:grid;grid-template-columns:1fr 30px;gap:4px;margin:0 5px 8px}.collection-form input{min-width:0;height:34px;padding:0 9px;border:1px solid var(--line);border-radius:6px;background:#fff;font-size:12px}.collection-form button{display:grid;place-items:center;border-radius:6px;color:#fff;background:var(--green)}.account-card{display:grid;grid-template-columns:minmax(0,1fr) 32px;align-items:center;gap:8px;margin-top:auto;padding:10px 8px;border-top:1px solid var(--line)}.account-profile-button{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;min-width:0;gap:8px;padding:0;border-radius:7px;text-align:left}.account-profile-button:hover{background:var(--green-soft)}.account-avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;color:#fff;background:var(--green);font-family:var(--serif);font-size:15px;font-weight:700}.account-details{display:grid;min-width:0;gap:2px}.account-details strong,.account-details small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-details strong{font-size:12px}.account-details small{color:var(--muted);font-size:9px}.account-details em{margin-left:5px;padding:2px 4px;border-radius:3px;color:var(--green-dark);background:var(--green-soft);font-size:8px;font-style:normal;font-weight:700}.account-logout-button{display:grid;place-items:center;width:32px;height:32px;border-radius:6px;color:var(--muted)}.account-logout-button:hover{color:var(--danger);background:#f5e8e5}.admin-nav-button{display:flex;align-items:center;gap:11px;min-height:41px;margin:12px 4px 0;padding:0 10px;border:1px solid #cbd5c9;border-radius:7px;color:var(--green-dark);background:#f5f8f3;font-size:12px;font-weight:600}.admin-nav-button:hover{border-color:#aebfaf;background:var(--green-soft)}.notes-rail{display:flex;flex-direction:column;background:#fbfaf6;overflow:hidden}.rail-heading{display:flex;align-items:center;min-height:84px;padding:0 20px}.rail-heading h1{margin:0;font-family:var(--serif);font-size:20px;line-height:1.2}.search-field{display:flex;align-items:center;gap:9px;height:43px;margin:0 18px;padding:0 12px;border:1px solid #cfd1cb;border-radius:7px;color:#6e716d;background:#fff;transition:border .15s ease,box-shadow .15s ease}.search-field:focus-within{border-color:var(--green);box-shadow:0 0 0 3px #47704c17}.search-field input{width:100%;min-width:0;border:0;outline:0;background:transparent;font-size:13px}.search-field button{display:grid;place-items:center;padding:2px;color:var(--muted)}.filters{display:flex;align-items:center;gap:10px;padding:16px 18px 17px;border-bottom:1px solid var(--line)}.filters label{position:relative;display:flex;align-items:center}.filters select{height:34px;padding:0 30px 0 10px;border:1px solid var(--line);border-radius:6px;appearance:none;background:var(--paper);font-size:12px;outline:0}.filters label svg{position:absolute;right:9px;pointer-events:none}.note-list{flex:1;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#c9cbc4 transparent}.note-row{position:relative;display:block;width:100%;min-height:138px;padding:24px 20px 17px;border-bottom:1px solid var(--line-soft);text-align:left;transition:background .15s ease}.note-row:hover{background:#f4f5f0}.note-row.active{background:linear-gradient(90deg,var(--green-tint),#f2f4ef)}.note-row.active:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--green)}.note-row strong{display:block;overflow:hidden;margin-bottom:10px;font-family:var(--serif);font-size:15px;text-overflow:ellipsis;white-space:nowrap}.note-row p{display:-webkit-box;overflow:hidden;margin:0 0 13px;color:var(--muted);font-family:var(--serif);font-size:12px;line-height:1.65;-webkit-box-orient:vertical;-webkit-line-clamp:2}.note-row>div{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--muted);font-size:11px}.note-row>div span{display:flex;align-items:center;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.note-row i{width:11px;height:9px;margin-right:6px;border:1.5px solid var(--green);border-radius:2px}.note-row time{flex:none}.empty-list{display:grid;justify-items:center;padding:60px 20px;color:var(--faint);text-align:center}.empty-list p{margin:15px 0 5px;color:var(--muted);font-size:13px}.empty-list small{font-size:11px}.editor{position:relative;display:flex;flex-direction:column;background:var(--paper);overflow:hidden}.editor-topbar{display:flex;align-items:center;justify-content:flex-end;gap:12px;min-height:74px;padding:0 26px;border-bottom:1px solid var(--line)}.editor-back-button{display:grid;place-items:center;width:32px;height:32px;margin-right:auto;border-radius:6px;color:#3e433d}.editor-back-button:hover{background:var(--paper-deep)}.save-state{display:flex;align-items:center;gap:7px;margin-right:4px;color:var(--green);font-size:12px}.save-state.dirty{color:var(--terracotta)}.spinner{width:13px;height:13px;border:1.5px solid #b5c1b4;border-top-color:var(--green);border-radius:50%;animation:spin .8s linear infinite}.more-menu-wrap{position:relative}.more-button{display:flex;align-items:center;gap:8px;height:37px;padding:0 14px;border:1px solid var(--line);border-radius:6px;background:#fff;font-size:12px}.more-button:hover{border-color:#b8bcb5}.more-menu{position:absolute;z-index:20;top:calc(100% + 7px);right:0;width:150px;padding:5px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:0 12px 30px #2328221a}.more-menu button{display:flex;align-items:center;gap:9px;width:100%;padding:9px 10px;border-radius:5px;font-size:12px;text-align:left}.more-menu button:hover{background:var(--paper-deep)}.more-menu button.danger{color:var(--danger)}.archive-actions{display:flex;align-items:center;gap:8px}.archive-actions button{display:flex;align-items:center;gap:7px;height:37px;padding:0 13px;border:1px solid var(--line);border-radius:6px;background:#fff;font-size:12px}.archive-actions button:hover{border-color:#b8bcb5;background:var(--paper-warm)}.archive-actions .restore-note-button{color:var(--green-dark);border-color:#aebfaf}.archive-actions .permanent-delete-button{color:var(--danger);border-color:#d8b7b2}.shared-editor-tools{display:flex;align-items:center;min-width:0;gap:8px}.shared-editor-badge{display:flex;align-items:center;min-width:0;gap:7px;padding:7px 10px;border-radius:6px;color:var(--green-dark);background:var(--green-soft);font-size:11px;font-weight:700}.shared-editor-badge svg{flex:none}.shared-editor-badge span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor-heading{padding:31px 40px 17px}.editor-heading textarea{display:block;width:100%;min-height:52px;margin:0;padding:0;overflow:hidden;border:0;outline:0;resize:none;background:transparent;font-family:var(--serif);font-size:clamp(27px,2.25vw,36px);font-weight:700;line-height:1.35;letter-spacing:.02em}.note-meta{display:flex;align-items:center;gap:10px;margin-top:8px;color:var(--muted);font-size:12px}.note-meta label{display:flex;align-items:center;gap:7px}.folder-dot{width:10px;height:10px;border-radius:2px;opacity:.9}.note-meta select{max-width:130px;padding:0 17px 0 0;border:0;outline:0;appearance:none;color:var(--green);background:transparent;font-size:12px}.shared-owner-meta{display:inline-flex;align-items:center;gap:6px;color:var(--green);font-weight:600}.meta-divider{width:1px;height:12px;background:var(--line)}.pinned-label{display:inline-flex;align-items:center;gap:4px;color:var(--green)}.editor-toolbar{display:flex;align-items:center;gap:3px;min-height:51px;padding:0 34px;border-block:1px solid var(--line);background:#fff6;overflow-x:auto}.editor-toolbar button{display:grid;flex:none;place-items:center;width:30px;height:30px;border-radius:5px;color:#3b3e3a}.editor-toolbar button:hover{color:var(--green-dark);background:var(--green-soft)}.editor-toolbar>span{flex:none;width:1px;height:20px;margin:0 5px;background:var(--line)}.content-editor{flex:1;overflow-y:auto;padding:24px 40px 90px;outline:0;color:#2c2e2a;background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 32px,rgba(89,92,84,.075) 33px);background-position:0 15px;font-family:var(--serif);font-size:clamp(15px,1.15vw,17px);line-height:1.95;caret-color:var(--green);scrollbar-width:thin;scrollbar-color:#c9cbc4 transparent}.content-editor h2,.content-editor h3{color:#242723;font-family:var(--serif)}.content-editor h2{margin:0 0 10px;font-size:22px;line-height:1.5}.content-editor h2:not(:first-child){margin-top:25px}.content-editor h3{margin:24px 0 7px;font-size:17px;line-height:1.5}.content-editor p{margin:0 0 15px}.content-editor strong,.content-editor b{font-weight:700;background:none}.content-editor em,.content-editor i{font-style:italic;font-synthesis:style}.content-editor mark{padding:0 2px;color:inherit;background:#f4e77d}.content-editor s,.content-editor del,.content-editor strike{text-decoration-thickness:1.5px}.content-editor blockquote{margin:18px 0;padding:2px 0 2px 18px;border-left:3px solid var(--green);color:#5d625c}.content-editor ul,.content-editor ol{margin:5px 0 18px;padding-left:24px}.content-editor ul[data-checklist=true]{padding-left:0;list-style:none}.content-editor ul[data-checklist=true] li{position:relative;padding-left:29px}.content-editor ul[data-checklist=true] li:before{content:"";position:absolute;top:.52em;left:0;width:15px;height:15px;border:1.5px solid #a7aaa3;border-radius:2px;background:#fff}.content-editor ul[data-checklist=true] li[data-checked=true]:before{border-color:var(--green);background:var(--green)}.content-editor ul[data-checklist=true] li[data-checked=true]{color:var(--muted);text-decoration:line-through;text-decoration-thickness:1px}.content-editor ul[data-checklist=true] li[data-checked=true]:after{content:"";position:absolute;top:calc(.52em + 3px);left:4px;width:7px;height:4px;border:solid white;border-width:0 0 1.5px 1.5px;transform:rotate(-45deg)}.content-editor a{color:var(--green);cursor:pointer;text-decoration-thickness:1px;text-underline-offset:3px}.content-editor.link-modifier-active a{cursor:alias}.content-editor.is-readonly{caret-color:transparent}.content-editor img{max-width:100%;max-height:70vh;height:auto;margin:8px 2px;border-radius:8px;object-fit:contain;vertical-align:middle}.content-editor code{padding:2px 5px;border-radius:4px;background:var(--paper-deep);font-family:Cascadia Code,monospace;font-size:.84em}.word-count{position:absolute;right:22px;bottom:12px;color:var(--faint);font-family:var(--serif);font-size:11px}.empty-editor{align-items:center;justify-content:center;color:var(--faint);text-align:center}.empty-editor h2{margin:20px 0 5px;color:#494c47;font-family:var(--serif);font-size:20px}.empty-editor p{margin:0;font-size:13px}.study-panel{position:relative;padding:102px 14px 24px;border-left:1px solid var(--line);background:#fbfaf6;overflow-y:auto}.study-card{padding:22px 16px 8px;border:1px solid var(--line);border-radius:6px;background:var(--paper)}.study-panel section{padding:0 0 24px;border-bottom:1px solid var(--line)}.study-panel section+section{padding-top:24px}.study-panel section:last-child{border-bottom:0}.study-panel h2{margin:0 0 17px;font-family:var(--serif);font-size:15px}.progress-ring{position:relative;width:126px;height:126px;margin:0 auto 18px}.progress-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.progress-ring circle{fill:none;stroke:#e1e3de;stroke-width:7}.progress-ring circle.progress{stroke:var(--green);stroke-linecap:round;transition:stroke-dashoffset .4s ease}.progress-ring strong{position:absolute;inset:0;display:grid;place-content:center;font-family:var(--serif);font-size:23px;font-weight:500}.progress-ring strong span{font-size:12px}.goal-row{display:flex;align-items:center;justify-content:space-between}.goal-row div{display:grid;gap:7px}.goal-row span{font-family:var(--serif);font-size:13px;font-weight:700}.goal-row strong{font-family:var(--serif);font-size:14px;font-weight:500}.goal-row button{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--line);border-radius:50%;color:var(--green);background:#fff}.review-date{display:flex;align-items:center;gap:8px;margin-bottom:14px;color:var(--terracotta)}.review-date strong{font-family:var(--serif);font-size:15px}.date-control{display:block;position:relative}.date-control span{display:flex;align-items:center;justify-content:center;height:40px;border:1px solid #dd9471;border-radius:6px;color:var(--terracotta);font-size:12px;font-weight:600;pointer-events:none}.date-control input{position:absolute;inset:0;width:100%;opacity:0;cursor:pointer}.tag-list{display:flex;flex-wrap:wrap;gap:6px}.tag-list>span{display:flex;align-items:center;gap:4px;padding:6px 7px;border-radius:5px;color:#5e625c;background:#eeefeb;font-size:11px}.tag-list button{display:grid;place-items:center;padding:0;color:#8b8e88}.add-tag{display:flex;align-items:center;gap:5px;width:100%;height:34px;margin-top:9px;padding:0 8px;border:1px dashed #c7c9c3;border-radius:5px;color:#8b8e88}.add-tag input{width:100%;min-width:0;border:0;outline:0;background:transparent;font-size:11px}.toast{position:fixed;z-index:100;right:26px;bottom:24px;padding:11px 16px;border:1px solid #cad3c8;border-radius:7px;color:#fff;background:#384a3a;box-shadow:0 12px 32px #2630262b;font-size:12px;animation:toast-in .18s ease-out}.dialog-backdrop{position:fixed;z-index:120;inset:0;display:grid;place-items:center;padding:20px;background:#1f241f61;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.profile-dialog{width:min(100%,430px);max-height:calc(100vh - 40px);padding:22px;border:1px solid #d8dad3;border-radius:12px;background:var(--paper);box-shadow:0 24px 70px #1c231c3b;overflow-y:auto}.profile-dialog>header{display:flex;align-items:center;justify-content:space-between}.profile-dialog>header>div{display:flex;align-items:center;gap:9px;color:var(--green-dark)}.profile-dialog h2{margin:0;color:var(--ink);font-family:var(--serif);font-size:21px}.profile-dialog>header>button{display:grid;place-items:center;width:32px;height:32px;border-radius:6px;color:var(--muted)}.profile-dialog>header>button:hover{background:var(--paper-deep)}.profile-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-top:19px;padding:4px;border-radius:8px;background:var(--paper-deep)}.profile-tabs button{display:flex;align-items:center;justify-content:center;gap:7px;min-height:38px;border-radius:6px;color:var(--muted);font-size:12px;font-weight:600}.profile-tabs button.active{color:var(--green-dark);background:#fff;box-shadow:0 1px 4px #262c2417}.profile-dialog form{display:grid;margin-top:19px}.profile-dialog label{margin:14px 0 7px;color:#4d514c;font-size:12px;font-weight:700}.profile-dialog input{width:100%;min-width:0;height:42px;padding:0 11px;border:1px solid var(--line);border-radius:7px;outline:0;background:#fff;font-size:13px}.profile-dialog input:focus{border-color:var(--green);box-shadow:0 0 0 3px #47704c17}.profile-dialog small{margin-top:6px;color:var(--muted);font-size:10px;line-height:1.5}.profile-email{position:relative}.profile-email svg{position:absolute;z-index:1;top:13px;left:11px;color:var(--muted)}.profile-email input{padding-left:36px;color:var(--muted);background:var(--paper-deep)}.profile-password-heading{display:flex;align-items:center;justify-content:space-between}.profile-password-heading label{margin-top:14px}.profile-password-heading button{display:flex;align-items:center;gap:5px;margin-top:8px;padding:5px;color:var(--green-dark);font-size:10px;font-weight:600}.profile-security-note{display:flex;align-items:flex-start;gap:8px;margin-top:17px;padding:10px 11px;border:1px solid #c4d2c2;border-radius:7px;color:var(--green-dark);background:var(--green-tint);font-size:11px;line-height:1.55}.profile-security-note svg{flex:none;margin-top:1px}.profile-error{margin-top:14px;padding:10px 12px;border:1px solid #e2bdb7;border-radius:6px;color:var(--danger);background:#fff5f3;font-size:12px}.profile-dialog footer{display:flex;justify-content:flex-end;gap:8px;margin-top:22px}.profile-dialog footer button{display:flex;align-items:center;justify-content:center;gap:7px;height:40px;padding:0 15px;border-radius:7px;font-size:12px;font-weight:700}.profile-dialog footer button:disabled{cursor:not-allowed;opacity:.55}.profile-cancel{color:var(--muted);border:1px solid var(--line);background:#fff}.profile-save{color:#fff;background:var(--green)}.share-dialog{width:min(100%,530px);padding:22px;border:1px solid #d8dad3;border-radius:12px;background:var(--paper);box-shadow:0 24px 70px #1c231c3b}.share-dialog>header{display:flex;align-items:center;justify-content:space-between}.share-dialog>header>div{display:flex;align-items:center;gap:9px;color:var(--green-dark)}.share-dialog h2{margin:0;color:var(--ink);font-family:var(--serif);font-size:21px}.share-dialog>header>button{display:grid;place-items:center;width:32px;height:32px;border-radius:6px;color:var(--muted)}.share-dialog>header>button:hover{background:var(--paper-deep)}.share-note-title{overflow:hidden;margin:9px 0 18px;color:var(--muted);font-family:var(--serif);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.share-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:17px;padding:4px;border-radius:8px;background:var(--paper-deep)}.share-tabs button{display:flex;align-items:center;justify-content:center;gap:7px;min-height:38px;border-radius:6px;color:var(--muted);font-size:12px;font-weight:600}.share-tabs button.active{color:var(--green-dark);background:#fff;box-shadow:0 1px 4px #262c2417}.share-loading{display:flex;align-items:center;justify-content:center;gap:9px;min-height:160px;color:var(--muted);font-size:13px}.share-status{display:flex;align-items:flex-start;gap:10px;padding:13px;border:1px solid var(--line);border-radius:8px;color:var(--muted);background:var(--paper-warm)}.share-status.active{color:var(--green-dark);border-color:#b7c8b5;background:var(--green-tint)}.share-status svg{flex:none;margin-top:1px}.share-status div{display:grid;gap:4px}.share-status strong{font-size:13px}.share-status span{color:var(--muted);font-size:11px;line-height:1.5}.member-share-form{margin-top:17px}.member-share-form>label{display:block;margin-bottom:7px;color:#4d514c;font-size:12px;font-weight:600}.member-share-form>div{display:grid;grid-template-columns:35px minmax(0,1fr) auto;align-items:center;height:42px;border:1px solid var(--line);border-radius:7px;background:#fff;transition:border .15s ease,box-shadow .15s ease;overflow:hidden}.member-share-form>div:focus-within{border-color:var(--green);box-shadow:0 0 0 3px #47704c17}.member-share-form svg{justify-self:end;color:var(--muted)}.member-share-form input{min-width:0;height:100%;padding:0 9px;border:0;outline:0;background:transparent;font-size:12px}.member-share-form button{display:flex;align-items:center;gap:6px;align-self:stretch;padding:0 13px;color:#fff;background:var(--green);font-size:11px;font-weight:700}.member-share-form button:disabled{cursor:not-allowed;opacity:.55}.member-share-form button svg{color:inherit}.member-share-heading{display:flex;align-items:center;justify-content:space-between;margin:21px 0 8px;color:var(--ink);font-size:12px}.member-share-heading span{color:var(--muted);font-size:10px;font-weight:500}.member-share-list{max-height:210px;border-block:1px solid var(--line-soft);overflow-y:auto}.member-share-empty{display:flex;align-items:center;justify-content:center;gap:8px;min-height:75px;color:var(--faint);font-size:11px}.member-share-row{position:relative;display:grid;grid-template-columns:27px 34px minmax(0,1fr) auto;align-items:center;gap:9px;min-height:61px;border-bottom:1px solid var(--line-soft);cursor:pointer;transition:background .15s ease}.member-share-row:last-child{border-bottom:0}.member-share-row:hover{background:var(--paper-warm)}.member-share-row:has(input:focus-visible){outline:2px solid rgba(71,112,76,.28);outline-offset:-2px}.member-share-row>input{position:absolute;width:1px;height:1px;opacity:0}.member-share-row:has(input:disabled){cursor:wait;opacity:.7}.contact-check{display:grid;place-items:center;width:21px;height:21px;border:1px solid #bfc3bc;border-radius:5px;color:#fff;background:#fff}.member-share-row.is-shared .contact-check{border-color:var(--green);background:var(--green)}.member-avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;color:#fff;background:var(--green);font-family:var(--serif);font-weight:700}.member-share-row>div{display:grid;min-width:0;gap:3px}.member-share-row strong,.member-share-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-share-row strong{font-size:12px}.member-share-row>div span{color:var(--muted);font-size:10px}.member-share-row em{padding:3px 6px;border-radius:4px;color:var(--green-dark);background:var(--green-soft);font-size:9px;font-style:normal;font-weight:700}.share-expiry{display:flex;align-items:center;justify-content:space-between;margin-top:17px;color:#4d514c;font-size:12px;font-weight:600}.share-expiry select{height:36px;padding:0 28px 0 10px;border:1px solid var(--line);border-radius:6px;background:#fff}.share-link-row{display:grid;grid-template-columns:minmax(0,1fr) auto 36px;gap:6px;margin-top:15px}.share-link-row input{min-width:0;height:38px;padding:0 10px;border:1px solid #b7c8b5;border-radius:6px;color:var(--green-dark);background:#fff;font-size:11px}.share-link-row button,.share-link-row a{display:flex;align-items:center;justify-content:center;gap:6px;height:38px;border-radius:6px;color:#fff;background:var(--green);font-size:11px;font-weight:600;text-decoration:none}.share-link-row button{padding:0 11px}.share-link-row a{color:var(--green-dark);border:1px solid #b7c8b5;background:#fff}.share-security-note{margin:13px 0 0;color:var(--muted);font-size:11px;line-height:1.65}.share-error,.admin-error{margin-top:14px;padding:10px 12px;border:1px solid #e2bdb7;border-radius:6px;color:var(--danger);background:#fff5f3;font-size:12px}.share-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:21px}.share-actions button{display:flex;align-items:center;justify-content:center;gap:7px;height:40px;padding:0 14px;border-radius:7px;font-size:12px;font-weight:600}.share-actions button:disabled{cursor:wait;opacity:.65}.share-revoke{margin-right:auto;color:var(--danger);border:1px solid #d8b7b2;background:#fff}.share-generate{color:#fff;background:var(--green)}.admin-shell{width:100vw;height:100vh;color:var(--ink);background:var(--paper-warm);overflow-y:auto}.admin-header{position:sticky;z-index:10;top:0;display:flex;align-items:center;justify-content:space-between;min-height:68px;padding:0 clamp(20px,4vw,64px);border-bottom:1px solid var(--line);background:#fdfcf8f0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.admin-brand{display:flex;align-items:center;gap:8px;font-family:var(--serif);font-size:18px;font-weight:700}.admin-brand .brand-mark{width:26px}.admin-brand em{margin-left:7px;padding-left:14px;border-left:1px solid var(--line);color:var(--green);font-family:inherit;font-size:13px;font-style:normal}.admin-header>button,.admin-refresh{display:flex;align-items:center;gap:7px;height:38px;padding:0 13px;border:1px solid var(--line);border-radius:7px;background:#fff;font-size:12px}.admin-header>button:hover,.admin-refresh:hover{border-color:#b8bcb5;background:var(--paper-warm)}.admin-content{width:min(1180px,calc(100% - 40px));margin:0 auto;padding:52px 0 80px}.admin-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.admin-eyebrow{color:var(--green);font-size:11px;font-weight:700;letter-spacing:.16em}.admin-heading h1{margin:8px 0 7px;font-family:var(--serif);font-size:clamp(30px,4vw,44px)}.admin-heading p{margin:0;color:var(--muted);font-size:13px;line-height:1.7}.admin-refresh:disabled{cursor:wait;opacity:.65}.admin-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:32px 0 24px}.admin-stats article{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:8px;min-height:82px;padding:17px 19px;border:1px solid var(--line);border-radius:9px;background:var(--paper)}.admin-stats svg{color:var(--green)}.admin-stats span{color:var(--muted);font-size:12px}.admin-stats strong{font-family:var(--serif);font-size:27px;font-weight:500}.admin-loading{display:flex;align-items:center;justify-content:center;gap:10px;min-height:230px;color:var(--muted)}.admin-table-wrap{border:1px solid var(--line);border-radius:9px;background:var(--paper);overflow-x:auto}.admin-table{width:100%;min-width:920px;border-collapse:collapse}.admin-table th{padding:13px 15px;color:var(--muted);background:#f2f2ec;font-size:10px;font-weight:700;letter-spacing:.08em;text-align:left}.admin-table td{padding:14px 15px;border-top:1px solid var(--line-soft);color:#565a54;font-size:11px}.admin-table tr.is-suspended{opacity:.58}.admin-table select{min-width:100px;height:34px;padding:0 27px 0 9px;border:1px solid var(--line);border-radius:6px;background:#fff;font-size:11px}.admin-table select:disabled{cursor:not-allowed;color:var(--muted);background:var(--paper-deep)}.admin-member{display:grid;grid-template-columns:34px minmax(160px,1fr);align-items:center;gap:9px}.admin-member>span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;color:#fff;background:var(--green);font-family:var(--serif);font-size:14px;font-weight:700}.admin-member div{display:grid;gap:3px}.admin-member strong{color:var(--ink);font-size:12px}.admin-member small{color:var(--muted);font-size:9px}.admin-empty{display:grid;justify-items:center;gap:7px;padding:50px;color:var(--faint)}.admin-empty p{margin:0;font-size:12px}.shared-page{width:100vw;height:100vh;color:var(--ink);background:var(--paper-warm);overflow-y:auto}.shared-header{position:sticky;z-index:10;top:0;display:flex;align-items:center;justify-content:space-between;min-height:66px;padding:0 max(22px,calc((100vw - 820px)/2));border-bottom:1px solid var(--line);background:#fdfcf8f0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.shared-brand{display:flex;align-items:center;gap:7px;color:var(--ink);font-family:var(--serif);font-size:18px;font-weight:700;letter-spacing:.06em;text-decoration:none}.shared-brand .brand-mark{width:26px}.shared-readonly{display:flex;align-items:center;gap:5px;padding:6px 9px;border-radius:5px;color:var(--green-dark);background:var(--green-soft);font-size:10px;font-weight:700}.shared-paper{width:min(780px,calc(100% - 38px));margin:38px auto 28px;padding:clamp(27px,5vw,56px);border:1px solid var(--line);border-radius:8px;background:var(--paper);box-shadow:0 16px 50px #262c240f}.shared-owner{color:var(--green);font-size:11px;letter-spacing:.04em}.shared-paper>h1{margin:14px 0 13px;font-family:var(--serif);font-size:clamp(29px,5vw,43px);line-height:1.35}.shared-meta{display:flex;flex-wrap:wrap;gap:8px 18px;color:var(--muted);font-size:11px}.shared-meta span{display:flex;align-items:center;gap:5px}.shared-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:16px}.shared-tags span{padding:5px 7px;border-radius:4px;color:#5e625c;background:#eeefeb;font-size:10px}.shared-note-content.content-editor{display:block;height:auto;min-height:260px;margin-top:28px;padding:30px 0 10px;border-top:1px solid var(--line);overflow:visible;background-position:0 45px}.shared-footer{padding:0 20px 36px;color:var(--faint);font-size:10px;text-align:center}.shared-state{display:grid;place-content:center;justify-items:center;gap:11px;min-height:100vh;color:var(--green);background:var(--paper-warm);text-align:center}.shared-state h1{margin:8px 0 0;color:var(--ink);font-family:var(--serif);font-size:24px}.shared-state p{margin:0;color:var(--danger);font-size:12px}.shared-state a{margin-top:8px;color:var(--green-dark);font-size:12px}.app-status{display:grid;place-content:center;justify-items:center;min-height:100vh;gap:12px;color:var(--green);background:var(--paper-warm)}.app-status h1{margin:8px 0 0;color:var(--ink);font-family:var(--serif);font-size:24px}.app-status p{margin:0;color:var(--danger);font-size:13px}.app-status small{color:var(--muted)}.spin{animation:spin .9s linear infinite}.mobile-close,.mobile-nav-trigger,.open-notes-mobile,.context-mobile-button,.mobile-backdrop{display:none}@keyframes spin{to{transform:rotate(360deg)}}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}@media(max-width:1180px){.app-shell,.app-shell.archive-mode{grid-template-columns:205px 285px minmax(480px,1fr)}.study-panel{position:fixed;z-index:60;top:0;right:0;bottom:0;width:260px;padding-top:70px;box-shadow:-15px 0 35px #2328221a;transform:translate(105%);transition:transform .2s ease}.study-panel.is-open{transform:translate(0)}.study-panel .mobile-close{display:grid;position:absolute;top:20px;right:18px;place-items:center;width:34px;height:34px}.context-mobile-button{display:grid;place-items:center;width:34px;height:34px;border-radius:6px}}@media(max-width:860px){body{overflow:hidden}.app-shell{display:block;min-height:100dvh}.nav-sidebar,.notes-rail{position:fixed;z-index:80;top:0;bottom:0;width:min(86vw,320px);box-shadow:14px 0 35px #23282221;transform:translate(-105%);transition:transform .2s ease}.nav-sidebar.is-open,.notes-rail.is-open{transform:translate(0)}.notes-rail{z-index:70;width:min(90vw,360px)}.nav-sidebar .mobile-close,.notes-rail .mobile-close{display:grid;position:absolute;top:23px;right:15px;z-index:2;place-items:center;width:34px;height:34px}.mobile-nav-trigger{display:grid;place-items:center;width:34px;height:34px;margin-right:8px}.mobile-backdrop{display:block;position:fixed;z-index:50;inset:0;background:#22252147;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.editor{width:100%;height:100dvh}.open-notes-mobile{display:flex;align-items:center;gap:6px;margin-right:auto;color:var(--green-dark);font-size:12px}.editor-topbar{min-height:62px;padding:0 14px;gap:8px}.editor-topbar .open-notes-mobile span{display:inline}.editor-back-button,.app-shell.focus-mode .open-notes-mobile{display:none}.app-shell.focus-mode .editor-back-button{display:grid}.app-shell.focus-mode .editor-heading{padding:20px 22px 13px}.app-shell.focus-mode .editor-heading textarea{min-height:44px;font-size:28px}.app-shell.focus-mode .editor-toolbar{min-height:49px;padding-inline:16px}.app-shell.focus-mode .content-editor{padding:24px 22px 80px;font-size:17px}.app-shell.focus-mode .content-editor h2{font-size:24px}.app-shell.focus-mode .content-editor h3{font-size:19px}.save-state{font-size:0}.save-state svg,.save-state .spinner{margin-right:0}.save-button{display:none}.editor-heading{padding:24px 22px 15px}.editor-heading textarea{min-height:46px;font-size:27px}.editor-toolbar{padding:0 16px}.content-editor{padding:22px 22px 80px;font-size:16px}}@media(max-width:900px){.auth-shell{display:block}.auth-panel{width:min(100%,520px)}.auth-aside{display:none}}@media(max-width:520px){.auth-panel{min-height:100dvh;padding:25px 20px 22px}.auth-copy{padding-top:45px}.auth-copy h1{font-size:30px}.auth-tabs{margin-top:24px}.auth-form{gap:14px}.more-button{width:38px;padding:0;justify-content:center;font-size:0}.more-button svg{width:17px;height:17px}.editor-heading{padding-inline:18px}.editor-heading textarea{font-size:24px}.note-meta{flex-wrap:wrap;font-size:10px}.pinned-label{display:none}.content-editor{padding-inline:18px}.archive-actions{gap:5px}.archive-actions button{padding:0 8px;font-size:11px}.toast{right:14px;bottom:14px;left:14px;text-align:center}.dialog-backdrop{align-items:end;padding:0}.share-dialog,.profile-dialog{max-height:92vh;padding:20px;border-radius:13px 13px 0 0;overflow-y:auto}.member-share-form>div{grid-template-columns:31px minmax(0,1fr) auto}.member-share-form button{padding-inline:10px}.member-share-row{grid-template-columns:25px 32px minmax(0,1fr) auto;gap:7px}.share-link-row{grid-template-columns:minmax(0,1fr) auto}.share-link-row a{display:none}.share-actions{flex-wrap:wrap}.share-actions button{flex:1}.admin-header{padding:0 14px}.admin-brand>span{display:none}.admin-content{width:calc(100% - 28px);padding-top:32px}.admin-heading{align-items:flex-start;flex-direction:column}.admin-stats{grid-template-columns:1fr;gap:8px}.admin-stats article{min-height:67px}.shared-header{padding-inline:16px}.shared-paper{width:calc(100% - 20px);margin-top:10px;padding:25px 20px;border-radius:6px}.shared-note-content.content-editor{font-size:15px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
