@import"https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,600;9..144,700&family=Plus+Jakarta+Sans:wght@400;500;700;800&display=swap";:root{--bg: #f7f4ef;--bg-2: #efe7db;--surface: #fffefc;--text: #201a11;--muted: #6d5d47;--accent: #0f7d6b;--accent-2: #e26c2a;--danger: #8f1720;--radius: 16px}*{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:Plus Jakarta Sans,sans-serif;color:var(--text);background:radial-gradient(circle at 10% 10%,#fff7e7 0%,transparent 40%),radial-gradient(circle at 90% 20%,#e2f9f1 0%,transparent 35%),linear-gradient(180deg,var(--bg),var(--bg-2))}.app-shell{width:min(980px,100%);margin:0 auto;padding:1rem}.auth-shell{width:min(560px,100%)}.hero{padding:1.25rem;border-radius:var(--radius);background:linear-gradient(135deg,#fffdf7,#f3ece2);border:1px solid #e8dcc9}.hero h1{margin:.25rem 0;font-family:Fraunces,serif;font-size:clamp(1.6rem,4vw,2.4rem)}.kicker{margin:0;color:var(--accent);font-weight:700;letter-spacing:.03em}.subtitle{margin:0;color:var(--muted)}.session-row{margin-top:.9rem;display:flex;align-items:center;justify-content:space-between;gap:.8rem;flex-wrap:wrap}.session-row p{margin:0;color:var(--muted)}.session-ttl-row{display:flex;align-items:center;gap:.6rem;margin-top:.55rem;font-size:.82rem;color:var(--muted);flex-wrap:wrap}.session-ttl-row label{white-space:nowrap;color:var(--muted)}.session-ttl-row input[type=number]{width:80px;padding:.25rem .5rem;font-size:.82rem}.session-ttl-hint{opacity:.65;white-space:nowrap}.content{display:grid;gap:1rem;margin-top:1rem}.panel{background:var(--surface);border:1px solid #eadfcd;border-radius:var(--radius);padding:1rem;box-shadow:0 8px 26px #2a221614}.panel h2{margin-top:0;font-size:1rem}.upload-form{display:grid;gap:.7rem}.new-document-row{margin-top:.7rem;display:grid;gap:.6rem}.login-form,.user-form{display:grid;gap:.7rem}.user-form{grid-template-columns:1fr 1fr auto auto;align-items:end;max-width:640px}input[type=text],input[type=password],input[type=number],select,textarea{width:100%;border:1px solid #dcc6a7;border-radius:12px;background:#fffdf9;color:var(--text);padding:.72rem;font:inherit}textarea{resize:vertical;min-height:132px}input[type=file]{width:100%;border:1px dashed #c8b498;border-radius:12px;background:#fcf8f2;padding:.75rem}button{border:0;border-radius:999px;background:linear-gradient(90deg,var(--accent),#11927c);color:#fff;font-weight:700;padding:.7rem 1rem;cursor:pointer}button:hover{filter:brightness(.98)}button:disabled{opacity:.65;cursor:wait}.button-secondary{background:linear-gradient(90deg,#7c6b55,#8e7d67)}.button-danger{background:linear-gradient(90deg,#ab2f2f,#c64545)}.doc-list{margin:0;padding:0;list-style:none;display:grid;gap:.75rem}.doc-card{display:flex;justify-content:space-between;gap:.8rem;align-items:center;border:1px solid #e9dfd1;border-radius:14px;padding:.8rem;background:#fffcf8}.doc-card-actions{display:grid;gap:.5rem;justify-items:end}.doc-card h3{margin:0;font-size:.98rem}.doc-card p{margin:.3rem 0;color:var(--muted)}.doc-card small{color:#886f4c}.doc-card button{background:linear-gradient(90deg,#e26c2a,#ea8349)}.doc-card button.button-danger{background:linear-gradient(90deg,#ab2f2f,#c64545)}.admin-panel{grid-column:1 / -1}.user-list{margin:1rem 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.5rem}.user-row{display:grid;grid-template-columns:minmax(120px,auto) 1fr auto auto auto auto;align-items:center;gap:.5rem;border:1px solid #e7d7c2;border-radius:14px;background:#fff9f2;padding:.55rem .8rem}.user-row-meta{display:flex;flex-direction:column;gap:.1rem}.user-row p{margin:0;color:var(--muted);font-size:.78rem}.user-row-meta strong{font-size:.95rem;white-space:nowrap}.user-row-actions{display:contents}.user-row-actions input,.user-row-actions select{min-width:0}.user-row-buttons{display:contents}.user-row-buttons button{white-space:nowrap}.info{color:var(--muted)}.error-banner{margin-top:.75rem;border-radius:12px;background:#ffe7e9;border:1px solid #f2c0c6;color:var(--danger);padding:.75rem;font-weight:600}.editor-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#f8f3ea;display:flex;flex-direction:column}.editor-topbar{display:flex;justify-content:space-between;gap:.7rem;align-items:center;padding:.75rem 1rem;border-bottom:1px solid #ddcfbb;background:#fff;position:relative;z-index:2}.editor-topbar strong{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.editor-topbar button{background:linear-gradient(90deg,#ae2d2d,#cf4444)}.editor-container{flex:1;min-height:0;position:relative;z-index:1}.editor-tool-panel{position:absolute;right:1rem;top:4.5rem;width:min(420px,calc(100% - 2rem));border-radius:16px;border:1px solid #d8c3a5;background:#fffdf7f7;box-shadow:0 16px 34px #1a140c38;padding:1rem;z-index:3;display:grid;gap:.65rem}.editor-tool-panel h3{margin:0;font-family:Fraunces,serif}.editor-tool-panel label{display:grid;gap:.35rem;font-size:.92rem;color:var(--muted)}.tool-actions{display:flex;gap:.6rem;justify-content:flex-end;flex-wrap:wrap}.chapters-assigned{border:1px solid #e3d5c0;border-radius:12px;background:#fff9f1;padding:.75rem;display:grid;gap:.45rem}.chapters-assigned h4{margin:0;font-size:.95rem}.chapters-assigned-list{margin:0;padding-left:0;list-style:none;display:grid;gap:.3rem}.chapters-assigned-list li{color:var(--text);font-size:.95rem}.chapter-list-item{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.chapter-list-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chapter-move-btns{display:flex;gap:.25rem;flex-shrink:0}.btn-move{padding:.1rem .45rem;font-size:.9rem;background:var(--bg-2);border:1px solid #c8b89a;border-radius:4px;cursor:pointer;line-height:1.4}.btn-move:disabled{opacity:.3;cursor:default}.btn-move:not(:disabled):hover{background:var(--accent);color:#fff;border-color:var(--accent)}.custom-dimensions{display:flex;flex-direction:column;gap:.5rem;margin-top:.25rem}.custom-dim-row{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.custom-dim-row label{display:flex;flex-direction:column;gap:.25rem;font-size:.78rem;color:var(--muted)}.custom-dim-row input[type=number]{width:100%;padding:.35rem .5rem;border:1px solid #d4c8b4;border-radius:8px;font-size:.9rem;background:var(--surface);color:var(--text)}@media (min-width: 900px){.app-shell{padding:1.4rem}.content{grid-template-columns:320px minmax(0,1fr);align-items:start}.panel{padding:1.1rem}}
