:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#292d29;background:#f7f8f5;font-size:14px;font-synthesis:none;--ink:#292d29;--muted:#687068;--line:#e2e5de;--side:#f3f4ef;--green:#426d55;--selection:#e8eee5;--reading:#e9ebe5}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{color:inherit;cursor:pointer}button{border:0;background:none}a{color:inherit;text-decoration:none}button:disabled{opacity:.35;cursor:default}[hidden]{display:none!important}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--green);outline-offset:3px;border-radius:4px}::selection{background:#cfddca;color:#213a2a}input{caret-color:var(--green)}svg{width:20px;height:20px;display:block;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}h1,h2,p{margin:0}h1{font-size:24px;letter-spacing:-.025em;font-weight:600}h2{font-size:18px;font-weight:550;letter-spacing:-.015em}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:fixed;left:12px;top:-60px;z-index:100;background:white;padding:12px}.skip:focus{top:12px}.app{display:grid;grid-template-columns:224px minmax(0,1fr);grid-template-rows:72px minmax(0,1fr);height:100dvh;min-height:450px;overflow:hidden}.sidebar{grid-column:1;grid-row:1/3;display:flex;flex-direction:column;background:var(--side);border-right:1px solid var(--line);min-height:0}.brand{display:flex;align-items:center;gap:12px;height:105px;padding:0 24px;flex-shrink:0;font-size:20px;font-weight:600;letter-spacing:-.035em}.brand-sub{display:block;font-size:9px;letter-spacing:.13em;font-weight:500;color:var(--muted);margin-top:7px}.brand-mark{width:20px;height:28px;position:relative;border-left:2px solid var(--ink);transform:skew(-13deg)}.brand-mark:before,.brand-mark:after{content:"";position:absolute;left:5px;border-left:2px solid var(--ink);height:24px;top:2px}.brand-mark:after{left:12px;height:16px;top:6px}.side-body{overflow:auto;padding:0 12px;flex:1}.nav-item{width:100%;display:flex;align-items:center;gap:11px;min-height:42px;padding:10px 12px;text-align:left;border-radius:6px;color:#535d53;font-size:13px}.nav-item:hover{background:#e9ece4}.nav-item.active{color:#294a34;background:#e2e8dd;font-weight:600}.nav-item>span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-item svg{width:18px;height:18px;flex-shrink:0}.count{margin-left:auto;font-size:11px;color:#626d60;font-variant-numeric:tabular-nums}.section-label{font-size:11px;color:var(--muted);margin:30px 12px 10px;font-weight:550}.folder-nav .nav-item{font-size:12px;min-height:37px;padding-top:8px;padding-bottom:8px}.depth-1{padding-left:25px}.depth-2{padding-left:38px}.depth-3{padding-left:51px}.sync-status{display:flex;gap:9px;padding:20px 22px 12px;font-size:11px;align-items:flex-start}.sync-status strong{font-size:12px;display:block;font-weight:500}.sync-status span:not(.status-dot){display:block;margin-top:5px;color:var(--muted);line-height:1.4}.status-dot{margin-top:4px;background:#56835b;width:6px;height:6px;border-radius:50%;flex-shrink:0}.sync-status.warning .status-dot{background:#a36f2e}.sync-status.warning strong{color:#80551e}.local-note{display:flex;gap:7px;align-items:center;padding:0 22px 22px;font-size:10px;color:var(--muted)}.local-note svg{width:12px;height:12px}.topbar{display:flex;gap:20px;align-items:center;padding:0 27px;background:white;border-bottom:1px solid var(--line);min-width:0}.breadcrumbs{display:flex;align-items:center;gap:8px;font-size:12px;min-width:0;flex:1;overflow:hidden;white-space:nowrap}.breadcrumbs button{padding:6px 0;color:var(--muted);font-size:12px;flex-shrink:0}.breadcrumbs button:last-child{color:var(--ink)}.breadcrumbs svg{width:13px;height:13px;color:#969c94;flex-shrink:0}.search-wrap{position:relative;display:flex;align-items:center;width:270px;max-width:40%;background:#f6f7f3;border:1px solid #e6e8e2;border-radius:6px;gap:8px;padding:0 10px;flex-shrink:0}.search-wrap svg{width:16px;height:16px;color:var(--muted)}.search-wrap input{width:100%;min-width:0;border:0;background:transparent;padding:9px 0;font-size:12px;outline:none}.search-wrap:focus-within{border-color:#789179;box-shadow:0 0 0 2px #e5ede1}.search-wrap input:focus-visible{outline:0}.search-wrap input::placeholder{color:#70786e}.search-wrap kbd{border:1px solid #dce0d5;border-radius:3px;padding:0 4px;font-size:10px;color:#777e74}.icon-button{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:5px;flex-shrink:0;color:#616a60}.icon-button:hover{background:#e8ece4;color:#293c2e}.icon-button svg{width:18px;height:18px}.icon-button.busy svg{animation:rotate .8s linear infinite}.workspace{display:grid;grid-template-columns:minmax(310px,.9fr) minmax(370px,1.1fr);min-height:0;min-width:0;background:white}.browser{display:flex;flex-direction:column;min-width:0;min-height:0;border-right:1px solid var(--line)}.browser-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:30px 26px 25px}.browser-heading p{font-size:11px;color:var(--muted);margin-top:9px}.sort-label select{border:0;background:transparent;color:var(--muted);font-size:11px;max-width:110px;padding:5px;cursor:pointer}.list-label{display:flex;justify-content:space-between;padding:0 26px 11px;color:#727a70;font-size:10px;border-bottom:1px solid var(--line)}.file-list{list-style:none;padding:7px 12px;margin:0;overflow:auto;min-height:0;flex:1}.file-row{width:100%;display:grid;grid-template-columns:34px minmax(0,1fr) 58px;align-items:center;gap:10px;padding:12px 12px;border-radius:5px;text-align:left;min-height:63px}.file-row:hover{background:#f4f6f0}.file-row.selected{background:var(--selection)}.file-row.selected .file-name{color:#274a30}.file-icon{display:flex;align-items:center;justify-content:center;width:30px;height:34px;color:#818b79}.file-icon svg{width:24px;height:28px}.file-icon.folder svg{color:#737d67;fill:#edf0e7;stroke-width:1.25}.file-icon.pdf{color:#9b7364}.file-icon.notebook{color:#657d6b}.file-name{display:block;font-size:12px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.45}.file-detail{display:block;font-size:10px;color:var(--muted);margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-date{font-size:10px;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}.browser-footer{height:37px;padding:0 24px;display:flex;justify-content:space-between;align-items:center;font-size:10px;color:var(--muted);border-top:1px solid var(--line);flex-shrink:0}.list-message{margin:32px 26px;font-size:13px;line-height:1.7;color:var(--muted)}.list-message button{display:block;margin-top:12px;color:var(--green);text-decoration:underline;text-underline-offset:3px}.preview{background:var(--reading);min-width:0;min-height:0}.preview-empty{height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:40px;color:#697363}.empty-icon{margin-bottom:24px;color:#a1ab96}.empty-icon svg{width:42px;height:52px;stroke-width:1}.preview-empty h2{font-size:20px;color:#525d4c;font-weight:450}.preview-empty p{font-size:12px;line-height:1.85;margin-top:14px;color:#737d6d}.document-panel{height:100%;display:flex;flex-direction:column;min-width:0}.document-heading{display:flex;align-items:center;gap:10px;padding:18px 20px 15px;background:#f7f8f4;min-height:80px;border-bottom:1px solid #dde2d7}.document-title{flex:1;min-width:0}.document-title h2{font-size:14px;font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.6}.document-title p{font-size:10px;color:var(--muted);margin-top:4px}.preview-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:48px;padding:0 17px;background:#f7f8f4;border-bottom:1px solid #dde2d7}.tabs{display:flex;align-self:stretch;gap:20px}.tabs button{font-size:11px;color:var(--muted);padding:0;position:relative}.tabs button.active{color:var(--ink);font-weight:550}.tabs button.active:after{content:"";height:2px;background:#5c7456;position:absolute;bottom:-1px;left:0;right:0}.page-controls{display:flex;gap:2px;align-items:center;flex-shrink:0}.page-controls select{font-size:11px;border:0;background:transparent;color:var(--ink);max-width:62px;padding:5px}.page-controls>span{font-size:10px;color:var(--muted);white-space:nowrap}.page-controls .icon-button{width:24px;height:28px}.page-controls svg{width:14px}.canvas{flex:1;overflow:auto;padding:26px;min-height:0;position:relative;display:flex;align-items:flex-start;justify-content:center}.canvas img{width:100%;height:auto;background:white;box-shadow:0 4px 20px #36422b14;border-radius:1px;min-height:160px;transition:opacity .16s ease-out}.canvas iframe{border:0;width:100%;height:100%;min-height:350px;background:white}.canvas.pdf-canvas{padding:0}.preview-loading{position:absolute;top:38px;left:0;right:0;text-align:center;font-size:12px;color:var(--muted);padding:20px}.preview-message{align-self:center;padding:35px;max-width:390px;text-align:center;font-size:12px;line-height:1.8;color:#68735f}.preview-message a{display:inline-block;color:var(--green);text-decoration:underline;text-underline-offset:3px;margin-top:15px}.preview-note{font-size:10px;line-height:1.6;color:#697260;padding:12px 20px;background:#f1f3ed;border-top:1px solid #dfe3d8}.text-panel{flex:1;min-height:0;overflow:auto;padding:26px;background:#fff}.text-panel .text-notice{font-size:11px;color:var(--muted);line-height:1.7;margin-bottom:25px;border-bottom:1px solid var(--line);padding-bottom:18px}.text-panel h3{font-size:10px;font-weight:500;color:var(--muted);margin:24px 0 10px}.text-panel pre{font:13px/1.85 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;white-space:pre-wrap;overflow-wrap:anywhere;max-width:72ch}.skeleton{height:16px;border-radius:4px;background:#edf0e8;max-width:75%;margin:13px 0}.skeleton.short{width:90px;margin:18px 12px}.loading-row{padding:15px}.menu-toggle,.mobile-back,.sidebar-scrim{display:none}::-webkit-scrollbar{width:7px;height:7px}::-webkit-scrollbar-thumb{background:#cbd1c3;border-radius:5px;border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-track{background:transparent}.error-text{color:#8a4f3c}.sr-status{font-size:11px}.tags{display:flex;gap:4px}
@keyframes rotate{to{transform:rotate(360deg)}}
@media(min-width:1550px){.app{grid-template-columns:244px minmax(0,1fr)}.workspace{grid-template-columns:minmax(380px,.8fr) minmax(500px,1.2fr)}.file-row{padding-top:14px;padding-bottom:14px}.canvas{padding:32px 48px}}
@media(max-width:1100px){.app{grid-template-columns:195px minmax(0,1fr)}.brand{padding:0 20px;font-size:18px}.topbar{padding:0 20px;gap:14px}.workspace{grid-template-columns:minmax(270px,.9fr) minmax(310px,1.1fr)}.browser-heading{padding:26px 20px 24px}.file-list{padding:6px}.file-row{gap:7px;padding:10px 9px;grid-template-columns:29px minmax(0,1fr) 49px}.file-name{font-size:11px}.canvas{padding:18px}.tabs{gap:12px}.preview-toolbar{padding:0 12px}.page-total{display:none}.search-wrap{width:220px;max-width:45%}.preview-note{font-size:9px}.document-heading{padding:15px 12px}}
@media(max-width:850px){.app{grid-template-columns:190px minmax(0,1fr)}.workspace{grid-template-columns:minmax(0,1fr)}.preview{display:none}.app.reading .browser{display:none}.app.reading .preview{display:block}.mobile-back{display:inline-flex}.close-preview{display:none}.search-wrap{max-width:65%;width:250px}.file-row{grid-template-columns:34px minmax(0,1fr) 70px;padding:14px 15px}.file-name{font-size:13px}.file-date{font-size:11px}.file-detail{font-size:11px}.browser-heading{padding:30px 25px}.canvas img{max-width:680px}.canvas{padding:24px}.breadcrumbs{font-size:11px}}
@media(max-width:600px){.app{grid-template-columns:minmax(0,1fr);grid-template-rows:64px minmax(0,1fr)}.sidebar{position:fixed;top:0;bottom:0;left:0;width:248px;z-index:30;transform:translateX(-100%);transition:transform .18s ease-out}.app.nav-open .sidebar{transform:translateX(0)}.sidebar-scrim{position:fixed;inset:0;background:#17200f55;z-index:25}.app.nav-open .sidebar-scrim{display:block}.topbar{grid-column:1;padding:0 14px;gap:10px}.menu-toggle{display:inline-flex}.breadcrumbs{display:none}.search-wrap{flex:1;max-width:none;width:auto}.workspace{grid-column:1;grid-row:2}.browser{border-right:0}.browser-heading{padding:27px 24px 23px}.file-list{padding:5px 10px}.file-row{padding:12px 12px}.document-heading{min-height:74px;padding:14px}.document-title h2{font-size:13px}.preview-toolbar{padding:0 13px}.tabs{gap:20px}.tabs button{font-size:11px}.canvas{padding:18px}.preview-note{font-size:10px;padding:12px 16px}.text-panel{padding:24px}.brand{height:100px}.sync-status{padding-top:24px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.file-row.has-match{min-height:92px}.file-snippet{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:11px;line-height:1.6;color:var(--muted);margin-top:7px;overflow-wrap:anywhere}.file-row.has-match .file-date{align-self:start;padding-top:6px}

.file-row.has-match .file-detail{white-space:normal;line-height:1.5}

/* Additions use the file browser's existing compact controls and flat dividers. */
.library-actions{display:flex;gap:8px;flex-wrap:wrap;padding:0 24px 18px;flex-shrink:0}
.action-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:34px;padding:7px 10px;font-size:12px;border:1px solid var(--line);border-radius:5px;background:white;white-space:nowrap}
.action-button svg{width:16px;height:16px}.action-button:hover{background:var(--selection);border-color:#bdcabb}.action-button.primary{background:var(--green);color:white;border-color:var(--green)}.action-button.primary:hover{background:#345840}
.add-panel{margin:0 24px 16px;padding:16px;background:var(--side);flex-shrink:1;min-height:140px;max-height:48dvh;overflow:auto}
.field-label{display:block;font-size:12px;font-weight:550;margin-bottom:8px}.add-panel input,.add-panel select{width:100%;min-width:0;border:1px solid #c9d0c3;background:white;padding:9px;border-radius:4px;color:var(--ink);font-size:12px}
.add-panel input[type=file]{padding:7px;overflow:hidden}.add-panel input::file-selector-button{border:0;background:var(--selection);color:var(--ink);padding:7px 10px;border-radius:3px;margin-right:8px;cursor:pointer}
.form-help{font-size:12px;line-height:1.6;color:#596350;margin:10px 0 17px;max-width:70ch}.form-actions{display:flex;gap:8px;margin-top:15px}
.transfer-notice{font-size:12px;line-height:1.6;margin:0 24px 16px;overflow-wrap:anywhere;flex-shrink:0}
.upload-queue{border-top:1px solid var(--line);background:#f7f8f4;flex-shrink:1;min-height:44px;max-height:28dvh;overflow:auto}
.upload-queue summary{padding:12px 24px;cursor:pointer;font-size:12px;color:var(--ink);font-weight:550}
.upload-queue summary:focus-visible{outline:2px solid var(--green);outline-offset:-3px}.queue-help{padding:0 24px 10px;font-size:11px;color:var(--muted);line-height:1.6}
.upload-queue ol{list-style:none;margin:0;padding:0 24px 12px}.queue-job{display:flex;gap:12px;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:12px 0}.queue-job>div{min-width:0;overflow-wrap:anywhere}.queue-job strong{font-size:12px;font-weight:550}.queue-detail,.queue-state{display:block;font-size:11px;color:var(--muted);margin-top:5px;line-height:1.5}.queue-state{color:var(--green)}.queue-error{font-size:11px;line-height:1.6;color:#8a4f3c;margin-top:6px}.queue-state.error-text{color:#8a4f3c}.queue-job>.action-button{flex-shrink:0}
@media(max-width:1100px){.library-actions{padding-left:20px;padding-right:20px}.library-actions .action-button{font-size:11px;padding:7px 8px}.add-panel{margin-left:20px;margin-right:20px}}
@media(max-width:600px){.library-actions{padding:0 24px 18px}.library-actions .action-button{font-size:12px}.add-panel{margin-left:24px;margin-right:24px}.upload-queue{max-height:32dvh}}

.browser .file-list{min-height:86px}.add-panel .form-actions{position:sticky;bottom:-16px;background:var(--side);padding:10px 0;margin-top:5px}

@media(max-width:1100px){
 .app.adding .browser{overflow:auto}
 .app.adding .browser>div,.app.adding .add-panel,.app.adding .upload-queue{flex-shrink:0}
 .app.adding .add-panel{max-height:none;overflow:visible}
 .app.adding .file-list{flex:0 0 auto;max-height:260px;min-height:86px}
 .add-panel .form-actions{position:static}
}

.account-link{display:inline-flex;align-items:center;min-height:40px;font-size:12px;color:var(--green);flex-shrink:0;padding:8px 0}
@media(max-width:600px){.account-link{min-height:44px}}
