:root{--ink-bg: #14181D;--desk-surface: #1B2129;--desk-surface-raised: #222A33;--hairline: #313B46;--hairline-subtle: #242c36;--paper: #F2ECDD;--paper-shadow: #d9d0b4;--paper-ink: #262117;--paper-dim: #6b6349;--text-hi: #ECE9DF;--text-mid: #A9B0B8;--text-dim: #6E7681;--gold: #D9A741;--gold-hover: #e5b654;--gold-dim: #8a7135;--gold-tint: rgba(217, 167, 65, .12);--blue: #5B8DEF;--blue-hover: #6ea0ff;--blue-dim: #3a5da3;--blue-tint: rgba(91, 141, 239, .12);--danger: #E0654F;--danger-tint: rgba(224, 101, 79, .15);--success: #4EBE82;--success-tint: rgba(78, 190, 130, .15);--radius-sm: 4px;--radius: 6px;--radius-lg: 10px;--radius-pill: 999px}*{box-sizing:border-box}html,body,#root{min-height:100vh;margin:0;padding:0}body{background:var(--ink-bg);color:var(--text-hi);font-family:IBM Plex Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent}::selection{background:var(--gold-dim);color:#fff}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--hairline);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#424e5c}::-webkit-scrollbar-track{background:transparent}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit;cursor:pointer}button:disabled{cursor:not-allowed}textarea,input{outline:none;font-family:inherit}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.app{display:grid;grid-template-columns:460px 1fr;min-height:100vh}@media (max-width: 980px){.app{grid-template-columns:1fr}}.shelf{background:var(--desk-surface);border-right:1px solid var(--hairline);padding:24px 20px 20px;display:flex;flex-direction:column;gap:20px;max-height:100vh;position:sticky;top:0;overflow-y:auto}@media (max-width: 980px){.shelf{position:static;max-height:none;border-right:none;border-bottom:1px solid var(--hairline);padding:20px}}.shelf-top-bar{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:16px;border-bottom:1px solid var(--hairline-subtle)}.brand{display:flex;flex-direction:column;gap:2px}.brand .mark{font-family:Fraunces,serif;font-weight:600;font-size:26px;letter-spacing:-.02em;color:var(--text-hi)}.brand .mark span{color:var(--gold)}.brand .sub{font-size:13px;color:var(--text-dim);letter-spacing:.02em}.user-badge-wrap{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.user-pill{display:inline-flex;align-items:center;gap:6px;background:var(--desk-surface-raised);border:1px solid var(--hairline);border-radius:var(--radius-pill);padding:4px 10px;font-size:12px;color:var(--text-mid);max-width:160px}.user-pill .user-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-pill .avatar-dot{width:7px;height:7px;border-radius:50%;background:var(--success);flex-shrink:0}.btn-logout{background:transparent;border:1px solid var(--hairline);color:var(--text-dim);border-radius:var(--radius-sm);padding:3px 8px;font-size:11px;transition:all .15s ease}.btn-logout:hover{border-color:var(--danger);color:var(--danger);background:var(--danger-tint)}.shelf-label-row{display:flex;align-items:center;justify-content:space-between;margin-top:10px;margin-bottom:8px}.shelf-label{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);font-weight:600}.shelf-actions{display:flex;align-items:center;gap:10px}.shelf-action-btn{background:none;border:none;color:var(--text-dim);font-size:11.5px;padding:0;cursor:pointer;transition:color .15s ease}.shelf-action-btn:hover{color:var(--gold);text-decoration:underline}.dropzone{border:1.5px dashed var(--hairline);border-radius:var(--radius);padding:16px 14px;text-align:center;cursor:pointer;transition:all .2s ease;background:#1b212966;display:block}.dropzone:hover,.dropzone.drag{border-color:var(--gold);background:var(--gold-tint);transform:translateY(-1px)}.dropzone .dz-icon{font-size:24px;margin-bottom:6px}.dropzone .dz-title{font-size:14px;font-weight:500;color:var(--text-hi);pointer-events:none}.dropzone .dz-hint{font-size:12px;color:var(--text-dim);margin-top:4px;pointer-events:none}input[type=file]{display:none}.upload-status{margin-top:10px;padding:10px 12px;border-radius:var(--radius-sm);font-size:12.5px;line-height:1.4;animation:fadeIn .2s ease-in-out}.upload-status.info{background:var(--blue-tint);border:1px solid var(--blue-dim);color:#c4d9ff}.upload-status.ok{background:var(--success-tint);border:1px solid rgba(78,190,130,.4);color:#a8f0cc}.upload-status.err{background:var(--danger-tint);border:1px solid rgba(224,101,79,.5);color:#ffb4a6}.paper-list{display:flex;flex-direction:column;gap:10px;overflow-y:auto;flex:1;min-height:120px;padding-right:4px}.paper-card{position:relative;background:var(--paper);color:var(--paper-ink);border-radius:var(--radius-sm);padding:12px 14px;cursor:pointer;box-shadow:0 1px 3px #0003,0 1px 0 var(--paper-shadow);transform:rotate(-.1deg);transition:all .15s ease;display:flex;align-items:flex-start;gap:12px;border:1px solid rgba(0,0,0,.05)}.paper-card:nth-child(2n){transform:rotate(.15deg)}.paper-card:hover{transform:rotate(0) translate(2px);box-shadow:0 4px 10px #0000004d,0 1px 0 var(--paper-shadow)}.paper-card.selected{box-shadow:0 0 0 2px var(--gold),0 4px 12px #00000059;transform:rotate(0)}.paper-card input[type=checkbox]{margin-top:3px;width:16px;height:16px;flex-shrink:0;accent-color:var(--gold-dim);cursor:pointer}.paper-card .meta{min-width:0;flex:1}.paper-card .title{font-size:13.5px;font-weight:600;line-height:1.35;color:var(--paper-ink);overflow-wrap:anywhere}.paper-card .card-footer{display:flex;align-items:center;gap:8px;margin-top:8px}.paper-card .tag{font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--paper-dim);background:#0000000f;padding:2px 6px;border-radius:3px}.paper-card .btn-abstract{background:transparent;border:none;color:#7d5b12;font-size:11.5px;font-weight:500;cursor:pointer;padding:2px 4px;border-radius:3px;transition:background .15s ease}.paper-card .btn-abstract:hover{background:#d9a74133;color:#593f07}.paper-card .btn-delete{background:transparent;border:none;color:#8c8270;font-size:13px;cursor:pointer;padding:2px 6px;margin-left:auto;border-radius:3px;transition:all .15s ease}.paper-card .btn-delete:hover{color:var(--danger);background:#e0654f1f}.abstract-preview{margin-top:10px;padding:10px 12px;background:#e8e1ce;border-left:3px solid var(--gold-dim);border-radius:3px;font-size:12px;line-height:1.5;color:#3b3424;animation:fadeIn .15s ease}.paper-empty{font-size:13px;color:var(--text-dim);padding:20px 8px;text-align:center;line-height:1.6;border:1px dashed var(--hairline);border-radius:var(--radius)}.desk{padding:32px 56px 64px;max-width:1080px;width:100%;margin:0 auto;display:flex;flex-direction:column}@media (max-width: 768px){.desk{padding:24px 20px 48px}}.desk-header{margin-bottom:24px}.desk-header h1{font-family:Fraunces,serif;font-weight:600;font-size:28px;margin:0 0 8px;color:var(--text-hi);letter-spacing:-.01em}.desk-header p{margin:0;color:var(--text-mid);font-size:14.5px;line-height:1.55}.tabs{display:inline-flex;background:var(--desk-surface);border:1px solid var(--hairline);border-radius:var(--radius-pill);padding:4px;margin-bottom:18px;width:fit-content}.tab-btn{border:none;background:transparent;color:var(--text-mid);font-size:14px;font-weight:500;padding:8px 20px;border-radius:var(--radius-pill);cursor:pointer;transition:all .15s ease}.tab-btn.active{background:var(--gold);color:#1a1506;font-weight:600;box-shadow:0 2px 6px #0003}.tab-btn:hover:not(.active){color:var(--text-hi);background:#ffffff0a}.selection-strip{font-size:13.5px;color:var(--text-mid);margin-bottom:14px;display:flex;align-items:center;gap:6px;min-height:24px;background:var(--desk-surface);border:1px solid var(--hairline-subtle);border-radius:var(--radius-sm);padding:8px 12px}.selection-strip strong{color:var(--gold);font-weight:600}textarea{width:100%;resize:vertical;min-height:105px;background:var(--desk-surface);border:1px solid var(--hairline);border-radius:var(--radius);color:var(--text-hi);font-size:15px;line-height:1.6;padding:16px 18px;background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 31px,var(--hairline-subtle) 32px);background-attachment:local;transition:border-color .15s ease}textarea:focus{border-color:var(--gold)}textarea::placeholder{color:var(--text-dim)}.desk-actions{display:flex;align-items:center;gap:16px;margin-top:14px}.btn{border:none;border-radius:var(--radius-sm);padding:10px 24px;font-size:14px;font-weight:600;cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;justify-content:center}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--gold);color:#1a1506}.btn-primary:hover{background:var(--gold-hover);box-shadow:0 4px 12px #d9a74140}.btn-primary:disabled{background:var(--hairline);color:var(--text-dim);cursor:not-allowed;box-shadow:none}.hint-err{font-size:13px;color:var(--danger);font-weight:500}.spinner{width:14px;height:14px;border:2px solid rgba(26,21,6,.3);border-top-color:#1a1506;border-radius:50%;display:inline-block;animation:spin .7s linear infinite;margin-right:8px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.answer-wrap{margin-top:32px;animation:fadeIn .25s ease-out}.answer-header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.answer-label{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--gold);font-weight:600;display:flex;align-items:center;gap:8px}.btn-copy{background:var(--desk-surface);border:1px solid var(--hairline);color:var(--text-mid);font-size:12px;padding:4px 10px;border-radius:var(--radius-sm);transition:all .15s ease}.btn-copy:hover{border-color:var(--gold);color:var(--gold)}.answer-body{background:var(--desk-surface-raised);border:1px solid var(--hairline);border-left:4px solid var(--gold);border-radius:var(--radius);padding:24px 28px;font-size:15px;line-height:1.8;color:var(--text-hi);box-shadow:0 4px 16px #00000040;overflow-wrap:anywhere}.answer-body p{margin:0 0 16px}.answer-body p:last-child{margin-bottom:0}.answer-body h3,.answer-body h4{font-family:Fraunces,serif;font-weight:600;color:var(--gold);margin:24px 0 10px;line-height:1.35}.answer-body h3:first-child,.answer-body h4:first-child{margin-top:0}.answer-body h3{font-size:18px}.answer-body h4{font-size:15.5px}.answer-body ul.ans-list{margin:0 0 16px;padding-left:24px}.answer-body ul.ans-list:last-child{margin-bottom:0}.answer-body ul.ans-list li{margin-bottom:8px}.answer-body strong{color:var(--text-hi);font-weight:600}.answer-body .cite{font-family:IBM Plex Mono,monospace;font-size:12px;background:var(--gold-tint);color:var(--gold);border:1px solid rgba(217,167,65,.3);padding:2px 7px;border-radius:var(--radius-pill);white-space:nowrap;font-weight:500;display:inline-block;margin:0 2px}.empty-state{margin-top:80px;text-align:center;color:var(--text-dim);font-size:14px}.empty-state .glyph{font-family:Fraunces,serif;font-size:42px;color:#2b333e;margin-bottom:12px}.auth-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--ink-bg);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.auth-card{width:100%;max-width:440px;background:var(--desk-surface);border:1px solid var(--hairline);border-radius:var(--radius-lg);padding:36px 32px;box-shadow:0 24px 48px #00000080;animation:fadeIn .25s ease}.auth-brand{text-align:center;margin-bottom:24px}.auth-brand .mark{font-family:Fraunces,serif;font-weight:600;font-size:32px;color:var(--text-hi);letter-spacing:-.02em}.auth-brand .mark span{color:var(--gold)}.auth-brand .sub{font-size:13.5px;color:var(--text-dim);margin-top:4px}.auth-tabs{display:flex;border-bottom:1px solid var(--hairline);margin-bottom:24px}.auth-tab{flex:1;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-dim);padding:10px;font-size:14px;font-weight:600;cursor:pointer;transition:all .15s ease}.auth-tab.active{color:var(--gold);border-bottom-color:var(--gold)}.auth-form{display:flex;flex-direction:column;gap:16px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-mid);font-weight:600}.form-group input{background:var(--ink-bg);border:1px solid var(--hairline);border-radius:var(--radius-sm);padding:11px 14px;font-size:14.5px;color:var(--text-hi);transition:border-color .15s ease}.form-group input:focus{border-color:var(--gold)}.form-group input::placeholder{color:#4a5460}.auth-error{background:var(--danger-tint);border:1px solid rgba(224,101,79,.4);color:#ff9b87;padding:10px 14px;border-radius:var(--radius-sm);font-size:13px;line-height:1.4}.auth-submit{width:100%;margin-top:8px;padding:12px;font-size:14.5px}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:16px;color:var(--text-mid);background:var(--ink-bg)}.loading-screen .spinner{width:24px;height:24px;border:3px solid var(--hairline);border-top-color:var(--gold)}
