:root{--green:#21634b;--ink:#182832;--muted:#697581;--border:#dbe2e7;--pale:#e7f3ec;--side:#f3f5f7}*{box-sizing:border-box}body{margin:0;color:var(--ink);font:15px/1.5 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;background:#fff}button,input,select,a{font:inherit}button,.button{border:1px solid #ccd7df;border-radius:7px;padding:9px 15px;background:#fff;color:var(--ink);cursor:pointer;white-space:nowrap;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;min-height:40px}button:hover,.button:hover{background:#f2f6f4}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #82b29c;outline-offset:2px}button:disabled{opacity:.5;cursor:default}.primary{background:var(--green);color:white;border-color:var(--green)}.primary:hover{background:#174e3a}.danger{color:#fff;background:#a53030;border-color:#a53030}header{height:76px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:28px;padding:0 24px}.brand{font-size:28px;font-weight:750;letter-spacing:-.7px;color:#14533f}#library-count{color:var(--muted);font-size:14px}.header-actions{margin-left:auto;display:flex;gap:12px}main{display:grid;grid-template-columns:220px 380px minmax(400px,1fr);height:calc(100vh - 76px);min-height:550px}aside{background:var(--side);padding:24px 20px;border-right:1px solid var(--border);overflow:auto}h2{font-size:17px;margin:0 0 20px;font-weight:650}.filter{display:block;margin:0 0 20px;font-weight:600}.filter select{display:block;margin-top:8px;width:100%;border:1px solid #d2dce3;border-radius:7px;background:white;height:42px;padding:0 10px;color:#33424b}fieldset{border:0;margin:26px 0 22px;padding:0}legend{font-weight:600;margin-bottom:8px}.radio{display:flex;gap:12px;align-items:center;margin:10px 0;cursor:pointer}.radio input{accent-color:var(--green);width:17px;height:17px}.reset{width:100%}.library{padding:20px 12px 0;border-right:1px solid var(--border);display:flex;flex-direction:column;min-width:0}.searchbox{display:flex;align-items:center;border:1px solid #d2dce3;border-radius:7px;margin:0 6px;height:44px;padding:0 10px;gap:10px}.searchbox span{font-size:26px;color:#586771}.searchbox input{border:0;outline:0;width:100%;min-width:0;background:transparent;font-size:14px}.list-heading{color:var(--muted);padding:12px 8px;font-size:14px}#paper-list{overflow:auto;flex:1}.paper-row{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;text-align:left;border:0;border-bottom:1px solid #edf0f2;border-radius:0;padding:14px 12px;background:white;min-height:78px}.paper-row.selected{background:var(--pale);border-radius:6px;color:#195c45}.paper-row strong{display:block;font-size:15px}.paper-row small{display:block;color:var(--muted);margin-top:3px}.print-label{font-size:12px;color:var(--green);text-align:right;min-width:65px}.detail{padding:24px;overflow:auto;min-width:0}.detail-heading{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:20px}h1{margin:0;font-size:28px;line-height:1.2;font-weight:700}.detail-heading p{margin:5px 0 0;color:var(--muted)}.detail-actions{display:flex;gap:10px;flex-shrink:0}#pdf-preview{width:100%;height:calc(100vh - 350px);min-height:330px;border:1px solid var(--border);border-radius:7px;background:#f3f5f7}.preview-note{color:var(--muted);font-size:12px;margin:8px 0 18px}.history-heading{display:flex;justify-content:space-between;align-items:center;margin:8px 0 10px}.history-heading h2{margin:0}.history-heading button{font-size:12px;min-height:32px;padding:5px 10px}#history{border:1px solid #e1e7eb;border-radius:7px;overflow:hidden}.history-empty{color:var(--muted);text-align:center;padding:22px;font-size:14px}.history-row{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid #edf0f2}.history-row:last-child{border:0}.history-row button{font-size:12px;min-height:28px;padding:3px 9px;color:#8f3b3b}.filename{font-size:11px;color:#8a969e;overflow-wrap:anywhere}.empty{padding:70px 10px;text-align:center;color:var(--muted)}.empty h2{margin-bottom:8px}.warning{background:#fff3da;color:#755323;padding:12px;margin-bottom:12px;border-radius:6px}dialog{max-width:480px;width:calc(100% - 32px);border:1px solid var(--border);border-radius:12px;padding:28px;box-shadow:0 20px 80px #122b3030}dialog::backdrop{background:#122b3055}dialog h2{font-size:21px;margin-bottom:12px}dialog p{color:var(--muted)}.dialog-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:24px}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#183d2e;color:#fff;padding:12px 20px;border-radius:8px;box-shadow:0 4px 25px #0002;z-index:10;max-width:90vw} [hidden]{display:none!important}@media(max-width:1200px){main{grid-template-columns:190px 310px minmax(330px,1fr)}aside{padding:20px 15px}.detail{padding:20px 16px}.detail-heading{flex-wrap:wrap}.detail-actions{width:100%}}@media(max-width:900px){header{gap:12px;padding:0 16px;height:auto;min-height:76px;flex-wrap:wrap;padding-top:12px;padding-bottom:12px}.brand{font-size:23px}#library-count{font-size:12px}.header-actions{gap:6px}.header-actions>*{padding:7px 10px;font-size:13px}main{height:auto;min-height:0;grid-template-columns:180px 1fr}.library{height:480px}.detail{grid-column:1/-1;border-top:1px solid var(--border)}#pdf-preview{height:650px}}@media(max-width:560px){header{gap:8px}.header-actions{width:100%;margin:0}.header-actions>*{flex:1}main{display:block}aside{padding:16px;border-right:0}aside h2{margin-bottom:12px}#filters{display:grid;grid-template-columns:1fr 1fr;gap:12px}.filter{margin:0;font-size:13px}.filter select{margin-top:5px}fieldset{margin:14px 0 10px;display:flex;gap:15px}legend{font-size:13px}.radio{font-size:13px;margin:0}.reset{min-height:32px;padding:4px}.library{height:400px;border-top:1px solid var(--border);border-right:0}.detail{padding:20px 16px}h1{font-size:25px}#pdf-preview{height:500px}.detail-actions>*{flex:1}.history-row{font-size:13px}}

/* Give the paper the available screen space; history follows below it. */
.detail-heading{margin-bottom:12px}
#pdf-preview{display:block;height:calc(100dvh - 205px);min-height:500px}
.preview-note{margin:5px 0 10px}
.history-heading{margin:10px 0 6px}
.history-heading h2{font-size:15px}
.history-empty{padding:7px 12px;text-align:left;font-size:13px}
.history-row{padding:6px 12px;font-size:13px}
@media(min-width:901px) and (max-width:1200px){#pdf-preview{height:calc(100dvh - 250px)}}
@media(max-width:900px){#pdf-preview{height:80dvh;min-height:500px}}

aside > .reset{margin-bottom:20px}

#login-view{min-height:calc(100dvh - 76px);display:grid;place-items:center;padding:32px 20px;background:#f3f5f7}.login-card{width:min(430px,100%);background:white;padding:32px;border:1px solid #dbe2e7;border-radius:12px}.login-card h1{font-size:28px}.login-card p{color:#697581}.login-card label,#add-user-form label{display:block;font-weight:600;margin-bottom:16px}.login-card input,#add-user-form input{display:block;width:100%;border:1px solid #ccd7df;border-radius:7px;padding:11px;margin-top:7px}.login-card button{width:100%;margin-bottom:10px}#login-code{font-size:24px;letter-spacing:8px}#login-message{min-height:24px;font-size:14px}#account-email{font-size:13px;color:#697581;align-self:center;overflow-wrap:anywhere}#users-dialog{max-width:650px}.users-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.users-heading h2{margin:0}.user-row{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:12px 0;border-bottom:1px solid #edf0f2}.user-row small{display:block;color:#697581}#users-list{margin-top:16px;max-height:50dvh;overflow:auto}#add-user-form{display:flex;align-items:end;gap:10px}#add-user-form label{flex:1;margin:0}header{height:auto;min-height:76px;flex-wrap:wrap;padding-top:12px;padding-bottom:12px}.header-actions{flex-wrap:wrap}@media(max-width:900px){#account-email{width:100%}.login-card{padding:24px}} 

/* Keep all desktop filters visible together. */
@media(min-width:901px){main{min-height:0;height:calc(100dvh - 76px)}}
@media(min-width:561px){
 aside{padding:14px 15px}
 aside h2{font-size:16px;margin-bottom:10px}
 aside > .reset{min-height:34px;padding:5px 10px;margin-bottom:12px;font-size:13px}
 .filter{margin-bottom:10px;font-size:13px;line-height:1.3}
 .filter select{height:34px;margin-top:4px;font-size:13px}
 aside fieldset{margin:12px 0 0}
 aside legend{font-size:13px;margin-bottom:3px}
 aside .radio{margin:7px 0;gap:8px;font-size:13px}
}
.user-row > div{flex:1;min-width:0;overflow-wrap:anywhere}
.user-row button{font-size:12px;padding:6px 9px;min-height:34px}
