:root{--bg-page:#fff;--bg-surface:#fafafa;--bg-card:#fff;--border-color:#e5e5e5;--text-primary:#0a0a0a;--text-secondary:#525252;--brand-accent:#0a0a0a;--brand-accent-hover:#262626;--brand-accent-soft:#f4f4f5}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-surface);color:var(--text-primary);-webkit-font-smoothing:antialiased;min-height:100vh;font-family:Plus Jakarta Sans,system-ui,-apple-system,sans-serif;overflow-x:hidden}@keyframes pulseRing{0%{opacity:.75;transform:scale(.75)}to{opacity:0;transform:scale(1.45)}}@keyframes barSlide{0%{left:-45%}to{left:100%}}@keyframes viewFadeIn{0%{opacity:0}to{opacity:1}}@keyframes cardReveal{0%{opacity:0;transform:translateY(16px)scale(.985)}to{opacity:1;transform:translate(0,0)scale(1)}}@keyframes modalPopIn{0%{opacity:0;transform:translateY(14px)scale(.96)}to{opacity:1;transform:translate(0,0)scale(1)}}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}#loader-screen{z-index:100;background:var(--bg-page);flex-direction:column;justify-content:center;align-items:center;gap:20px;display:flex;position:fixed;inset:0}.loader-brand{justify-content:center;align-items:center;width:64px;height:64px;display:flex;position:relative}.pulse-ring{border:2px solid var(--brand-accent);border-radius:50%;animation:1.6s cubic-bezier(.22,1,.36,1) infinite pulseRing;position:absolute;inset:0}.loader-bar-track{background:#e5e5e5;border-radius:999px;width:160px;height:3px;position:relative;overflow:hidden}.loader-bar-fill{background:var(--brand-accent);border-radius:999px;width:45%;height:100%;animation:1.2s cubic-bezier(.4,0,.2,1) infinite barSlide;position:absolute;top:0;left:-45%}#loader-text{color:var(--text-secondary);font-size:13px;font-weight:500}#directory-view{min-height:100vh;animation:.45s cubic-bezier(.22,1,.36,1) forwards viewFadeIn}.topbar{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border-color);z-index:40;background:#ffffffeb;position:sticky;top:0}.topbar-inner{justify-content:space-between;align-items:center;gap:16px;max-width:1160px;margin:0 auto;padding:14px 24px;display:flex}.brand-logo{color:var(--text-primary);letter-spacing:-.02em;align-items:center;gap:10px;font-size:18px;font-weight:800;text-decoration:none;display:inline-flex}.brand-mark{background:var(--brand-accent);color:#fff;border-radius:8px;justify-content:center;align-items:center;width:30px;height:30px;font-size:15px;font-weight:800;display:inline-flex}.topbar-actions{align-items:center;gap:10px;display:flex}.doc-badge{background:var(--bg-surface);border:1px solid var(--border-color);color:var(--text-secondary);border-radius:999px;padding:7px 12px;font-size:12px;font-weight:600}.btn-upload-trigger{background:var(--brand-accent);color:#fff;border:1px solid var(--brand-accent);cursor:pointer;border-radius:10px;align-items:center;gap:7px;padding:9px 15px;font-family:inherit;font-size:13px;font-weight:600;transition:background .2s,transform .15s;display:inline-flex}.btn-upload-trigger:hover{background:var(--brand-accent-hover)}.btn-sign-out{border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;background:#fff;border-radius:10px;align-items:center;gap:6px;padding:9px 14px;font-family:inherit;font-size:13px;font-weight:600;transition:all .2s;display:inline-flex}.btn-sign-out:hover{color:var(--text-primary);background:#f4f4f5}.main-container{max-width:1160px;margin:0 auto;padding:36px 24px 64px}.section-heading{margin-bottom:24px}.section-heading h1{color:var(--text-primary);letter-spacing:-.02em;margin-bottom:6px;font-size:24px;font-weight:800}.section-heading p{color:var(--text-secondary);font-size:14px}#book-list.grid{grid-template-columns:repeat(auto-fill,minmax(310px,1fr));align-items:stretch;gap:18px;display:grid}.card{background:var(--bg-card);border:1px solid var(--border-color);opacity:0;border-radius:16px;flex-direction:column;justify-content:space-between;min-height:190px;padding:20px;transition:transform .2s,box-shadow .2s,border-color .2s;animation:.45s cubic-bezier(.22,1,.36,1) forwards cardReveal;display:flex;box-shadow:0 2px 10px #00000008}.card:hover{border-color:#a3a3a3;transform:translateY(-2px);box-shadow:0 10px 24px #0000000f}.card.is-hidden-doc{opacity:.85;background:#fafafa;border-style:dashed;border-color:#a3a3a3}.card-meta{color:var(--text-secondary);flex-wrap:nowrap;align-items:center;gap:6px;margin-bottom:10px;font-size:12px;display:flex}.card-type-pill{letter-spacing:.04em;border:1px solid #d4d4d8;border-radius:6px;padding:2px 7px;font-size:10px;font-weight:700}.card-type-pill.is-pdf{color:#fff;background:#0a0a0a;border-color:#0a0a0a}.card-type-pill.is-excel{color:#0a0a0a;background:#f4f4f5}.card-type-pill.is-link{color:#0a0a0a;background:#fff;border-color:#0a0a0a}.card-type-pill.is-hidden-badge{color:#525252;background:#fff;border-style:dashed}.card h3{color:var(--text-primary);margin-bottom:8px;font-size:16px;font-weight:700;line-height:1.4}.card-uploader{color:var(--text-secondary);margin-bottom:18px;font-size:12px}.card-actions{align-items:center;gap:8px;display:flex}.btn-open{background:var(--brand-accent);color:#fff;border:1px solid var(--brand-accent);cursor:pointer;border-radius:10px;flex:1;height:40px;font-family:inherit;font-size:13px;font-weight:600;transition:background .2s}.btn-open:hover{background:var(--brand-accent-hover)}.btn-icon-action{border:1px solid var(--border-color);color:#404040;cursor:pointer;background:#fff;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;transition:all .2s;display:inline-flex}.btn-icon-action:hover:not(:disabled){color:#0a0a0a;background:#f4f4f5;border-color:#0a0a0a}.btn-icon-action.is-active-hidden,.btn-icon-action.is-copied{color:#fff;background:#0a0a0a;border-color:#0a0a0a}.btn-icon-action:disabled{opacity:.4;cursor:not-allowed}.modal-overlay{z-index:9000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0a0a0a8c;justify-content:center;align-items:center;width:100vw;height:100vh;padding:24px 16px;animation:.2s forwards overlayFadeIn;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-card{border:1px solid var(--border-color);background:#fff;border-top:4px solid #0a0a0a;border-radius:16px;width:100%;max-width:440px;max-height:calc(100vh - 48px);margin:auto;padding:24px;animation:.3s cubic-bezier(.22,1,.36,1) forwards modalPopIn;position:relative;overflow-y:auto;box-shadow:0 20px 44px #0000002e}.modal-card h2{color:var(--text-primary);margin-bottom:6px;font-size:18px;font-weight:700}.modal-card p{color:var(--text-secondary);margin-bottom:16px;font-size:13px;line-height:1.5}.mode-switcher{border:1px solid var(--border-color);background:#f4f4f5;border-radius:10px;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:16px;padding:4px;display:grid}.mode-tab{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:7px;padding:8px 10px;font-family:inherit;font-size:12.5px;font-weight:600;transition:all .2s}.mode-tab.is-active{color:#0a0a0a;background:#fff;box-shadow:0 1px 3px #0000001a}.form-group{text-align:left;margin-bottom:14px}.form-group label{color:var(--text-primary);margin-bottom:6px;font-size:12px;font-weight:600;display:block}.form-group input{border:1px solid var(--border-color);width:100%;color:var(--text-primary);background:#fff;border-radius:10px;outline:none;padding:10px 12px;font-family:inherit;font-size:13px}.form-group input:focus{border-color:#0a0a0a}.file-dropzone{color:var(--text-secondary);text-align:center;cursor:pointer;background:#fafafa;border:1.5px dashed #a3a3a3;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:18px 14px;transition:all .2s;display:flex}.file-dropzone:hover,.file-dropzone.has-file{color:#0a0a0a;background:#f4f4f5;border-color:#0a0a0a}.btn-primary-full{color:#fff;cursor:pointer;background:#0a0a0a;border:none;border-radius:10px;width:100%;padding:11px 16px;font-family:inherit;font-size:13px;font-weight:600}.btn-primary-full:hover:not(:disabled){background:#262626}.btn-primary-full:disabled{opacity:.6;cursor:not-allowed}#reader-viewport{z-index:60;background:#f4f4f5;flex-direction:column;animation:.35s forwards viewFadeIn;display:flex;position:fixed;inset:0}#btn-back{z-index:9999;color:var(--text-primary);border:1px solid var(--border-color);cursor:pointer;background:#fffffff5;border-radius:8px;padding:8px 14px;font-family:inherit;font-size:13px;font-weight:600;transition:all .2s;position:fixed;top:12px;left:16px;box-shadow:0 2px 8px #00000014}#btn-back:hover{color:#fff;background:#0a0a0a;border-color:#0a0a0a}.excel-viewer-shell{background:#fafafa;flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}.excel-header{border-bottom:1px solid var(--border-color);background:#fff;border-top:3px solid #0a0a0a;flex-direction:column;gap:10px;padding:12px 20px;display:flex}.excel-top-row{justify-content:space-between;align-items:center;gap:12px;padding-left:165px;display:flex}.excel-top-row.no-back{padding-left:0}.excel-tabs{align-items:center;gap:6px;display:flex;overflow-x:auto}.excel-tab-btn{color:var(--text-secondary);border:1px solid var(--border-color);cursor:pointer;white-space:nowrap;background:#fafafa;border-radius:7px;padding:6px 13px;font-family:inherit;font-size:12.5px;font-weight:600}.excel-tab-btn.is-active{color:#fff;background:#0a0a0a;border-color:#0a0a0a}.excel-scroll-area{flex:1;padding:16px;overflow:auto}.excel-table-card{border:1px solid var(--border-color);background:#fff;border-radius:12px;max-width:1200px;margin:0 auto;overflow-x:auto}.excel-clean-table{border-collapse:collapse;width:100%;font-size:13px}.excel-clean-table th,.excel-clean-table td{text-align:left;white-space:nowrap;border-bottom:1px solid #e5e5e5;border-right:1px solid #e5e5e5;padding:9px 14px}.excel-clean-table tr:first-child td{color:#fff;background:#0a0a0a;font-weight:700}#toast-notification{color:#fff;z-index:9999;background:#0a0a0a;border-radius:999px;padding:10px 18px;font-size:13px;font-weight:500;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000040}@media (width<=640px){.topbar-inner{gap:8px;padding:10px 14px}.topbar-actions{gap:6px}.btn-upload-trigger{padding:8px 10px;font-size:12px}.btn-sign-out span,.doc-badge{display:none}.excel-top-row{padding-left:135px}}.file-dropzone.is-dragover{color:#0a0a0a;background:#f4f4f5;border-style:solid;border-color:#0a0a0a;transform:scale(1.015);box-shadow:0 0 0 4px #0a0a0a14}.label-row-between{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.label-row-between label{margin-bottom:0}.btn-suggestion-chip{color:#0a0a0a;cursor:pointer;background:#f4f4f5;border:1px solid #d4d4d8;border-radius:6px;padding:3px 8px;font-family:inherit;font-size:11px;font-weight:600;transition:all .15s}.btn-suggestion-chip:hover{color:#fff;background:#0a0a0a;border-color:#0a0a0a}.field-hint{color:var(--text-secondary);margin-top:5px;font-size:11px;display:block}.staff-publisher-box{border:1px solid var(--border-color);text-align:left;background:#fafafa;border-radius:10px;justify-content:space-between;align-items:center;margin-bottom:14px;padding:10px 12px;display:flex}.staff-publisher-dot{background:#0a0a0a;border-radius:50%;flex-shrink:0;width:8px;height:8px}
