.lib{--ink: #0b0b0b;--surface: #1a1a1a;--line: #333333;--muted: #6b6b6b;--text: #d9d9d9;--red: #e53935;--white: #ffffff;min-height:70vh;color:var(--text);background:var(--ink);background-image:radial-gradient(ellipse 70% 40% at 50% 0%,rgba(255,255,255,.07),transparent 70%)}.lib-inner{max-width:1100px;margin:0 auto;padding:40px 16px 96px}@media(min-width:640px){.lib-inner{padding:56px 40px 96px}}.lib h1{font-size:clamp(2rem,5vw,2.75rem);font-weight:800;letter-spacing:-.02em;color:var(--white)}.lib h1:after{content:"";display:block;width:48px;height:4px;margin-top:14px;border-radius:999px;background:var(--red)}.lib-sub{margin-top:12px;color:var(--muted);font-size:15px;line-height:1.6;max-width:46rem}.lib-sub strong{color:var(--white);font-weight:600}.lib-head{margin-bottom:40px}.lib-h2{font-size:1rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--white);flex:1;min-width:8rem}.lib-panel{border:1px solid var(--line);background:var(--surface);border-radius:20px;padding:24px;display:grid;gap:14px;justify-items:start;color:var(--text);font-size:15px;line-height:1.6;max-width:40rem;box-shadow:0 20px 50px #00000080}.lib-panel h2{font-size:1.2rem;font-weight:700;color:var(--white)}.lib-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:20px}.lib-bar-right{display:flex;flex-wrap:wrap;gap:8px}.lib-btn{display:inline-flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--line);color:var(--text);padding:8px 16px;border-radius:999px;font-size:13px;font-weight:500;cursor:pointer;text-decoration:none;transition:background .15s,border-color .15s,color .15s;white-space:nowrap}.lib-btn:hover{background:var(--line);color:var(--white)}.lib-btn:focus-visible,.lib .book:focus-visible,.tier-card:focus-visible{outline:2px solid var(--red);outline-offset:3px}.lib-btn-primary{background:var(--red);border-color:var(--red);color:var(--white);font-weight:600}.lib-btn-primary:hover{background:#f04a46;border-color:#f04a46}.lib-btn-quiet{background:transparent;border-color:transparent;color:var(--muted)}.lib-btn-quiet:hover{background:transparent;color:var(--white)}.lib-btn[aria-busy=true]{opacity:.6;pointer-events:none}.lib-btn[data-armed]{background:var(--red);border-color:var(--red);color:var(--white)}.lib-msg{font-size:13px;color:var(--muted);min-height:1.2em}.lib-msg.err{color:#ff6b66}.lib-hint{margin-top:56px;font-size:12px;color:var(--muted)}.tier-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px}.tier-card{all:unset;box-sizing:border-box;display:flex;flex-direction:column;cursor:pointer;border-radius:20px;overflow:hidden;background:var(--surface);border:1px solid var(--line);box-shadow:0 10px 30px #00000080;transition:transform .18s ease,box-shadow .18s ease,border-color .18s}.tier-card:hover{transform:translateY(-6px);border-color:var(--muted);box-shadow:0 24px 50px #000000b3}.tier-card-top{height:8px}.tier-card-body{padding:22px;display:flex;flex-direction:column;gap:10px;min-height:176px;flex:1}.tier-card-name{font-size:1.3rem;font-weight:800;letter-spacing:.02em;overflow-wrap:anywhere}.tier-card-desc{font-size:13px;color:var(--muted);line-height:1.5;flex:1}.tier-card-footer{display:flex;align-items:center;justify-content:space-between}.tier-badge{font-size:11px;padding:3px 10px;border-radius:999px;border:1px solid var(--line);color:var(--text)}.tier-enter{font-size:18px;color:var(--muted);transition:color .15s,transform .15s}.tier-card:hover .tier-enter{color:var(--red);transform:translate(4px)}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:20px 0 44px}.search-wrap{flex:1 1 16rem}#search-input{width:100%;padding:10px 18px;background:var(--surface);border:1px solid var(--line);border-radius:999px;color:var(--white);font-size:14px;outline:none}#search-input:focus{border-color:var(--red)}#search-input::placeholder{color:var(--muted)}.shelf-wrapper{position:relative;margin:0 8px}.shelf{display:flex;align-items:flex-end;flex-wrap:wrap;gap:6px;padding:20px 16px 0;min-height:200px;position:relative}.shelf:after{content:"";position:absolute;bottom:-16px;left:-8px;right:-8px;height:16px;border-radius:999px;background:linear-gradient(to bottom,#6b6b6b,#333 40%,#1a1a1a);box-shadow:0 14px 30px #000c,0 -1px #ffffff40 inset}.shelf:before{content:"";position:absolute;bottom:-40px;left:10%;right:10%;height:20px;background:radial-gradient(ellipse at center,rgba(255,255,255,.08),transparent 70%)}.lib .book{all:unset;box-sizing:border-box;position:relative;width:44px;height:160px;border-radius:6px 3px 3px 6px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:inset -4px 0 8px #0006,inset 2px 0 3px #ffffff2e,3px 3px 10px #0009;transition:transform .15s ease,box-shadow .15s ease,opacity .2s}.lib .book:hover{transform:translateY(-8px);box-shadow:inset -4px 0 8px #0006,inset 2px 0 3px #ffffff2e,6px 14px 22px #000000b3}.lib .book.dimmed{opacity:.15}.lib .book.dragging{opacity:.4}.lib .book.drag-over{box-shadow:-4px 0 0 var(--red),inset -4px 0 8px #0006}.book-title{writing-mode:vertical-rl;transform:rotate(180deg);color:var(--white);font-size:11px;font-weight:700;letter-spacing:.04em;text-shadow:0 1px 3px rgba(0,0,0,.6);max-height:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:4px 0;pointer-events:none;user-select:none}.book-type-dot{position:absolute;bottom:8px;left:50%;transform:translate(-50%);width:6px;height:6px;border-radius:50%;box-shadow:0 0 0 1px #ffffff59;pointer-events:none}.shelf-sep{width:22px;height:160px;flex-shrink:0;display:flex;align-items:center;justify-content:center;position:relative}.shelf-sep:before{content:"";position:absolute;width:2px;height:100%;background:linear-gradient(to bottom,transparent,#6b6b6b,transparent)}.shelf-sep-label{writing-mode:vertical-rl;transform:rotate(180deg);font:600 9px ui-monospace,monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--text);position:relative;z-index:1;background:var(--ink);padding:6px 0}.empty-msg{color:var(--muted);font-size:14px;padding:20px;align-self:center}.reel-list{display:grid;gap:10px;max-width:46rem}.reel-item{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:14px 18px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.reel-item-name{flex:1;min-width:10rem;color:var(--white);font-weight:600;overflow-wrap:anywhere}.reel-item-date{font-size:12px;color:var(--muted)}.lib-modal{border:1px solid #333333;padding:0;background:#fff;width:min(800px,calc(100vw - 32px));max-height:88vh;border-radius:20px;overflow:hidden;box-shadow:0 40px 100px #000c;color:#1a1a1a}.lib-modal[open]{display:flex;flex-direction:column}.lib-modal::backdrop{background:#0b0b0bd9;backdrop-filter:blur(4px)}.lib-modal-sm{width:min(520px,calc(100vw - 32px));background:#1a1a1a;color:#d9d9d9}.modal-header{display:flex;align-items:center;gap:10px;padding:12px 16px;background:#1a1a1a;border-bottom:1px solid #333333;flex-wrap:wrap}.modal-color-strip{width:10px;height:32px;border-radius:999px;flex-shrink:0}.modal-title{flex:1;min-width:8rem;font-size:1.1rem;font-weight:700;color:#fff;overflow-wrap:anywhere}.type-badge{font:600 10px ui-monospace,monospace;padding:3px 9px;border-radius:999px;border:1px solid #6b6b6b;color:#d9d9d9;letter-spacing:.05em}.modal-actions{display:flex;flex-wrap:wrap;gap:6px}.lib-modal .btn{padding:7px 14px;border-radius:999px;border:1px solid #333333;background:#333;color:#fff;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;text-decoration:none;display:inline-flex;align-items:center;transition:background .15s,border-color .15s}.lib-modal .btn:hover{background:#6b6b6b;border-color:#6b6b6b}.lib-modal .btn:focus-visible{outline:2px solid #e53935;outline-offset:2px}.lib-modal .btn-copy,.lib-modal .btn-save{background:#e53935;border-color:#e53935;font-weight:600}.lib-modal .btn-copy:hover,.lib-modal .btn-save:hover{background:#f04a46;border-color:#f04a46}.lib-modal .btn-copy.copied{background:#fff;color:#0b0b0b;border-color:#fff}.lib-modal .btn-close,.lib-modal .btn-ghost{background:transparent;border-color:#6b6b6b;color:#d9d9d9}.lib-modal .btn-close:hover,.lib-modal .btn-ghost:hover{background:#333;color:#fff}.lib-modal .btn-danger{background:transparent;border-color:#e53935;color:#ff6b66}.lib-modal .btn-danger[data-armed]{background:#e53935;color:#fff}.modal-body{flex:1;overflow-y:auto;padding:0;min-height:0}.reader-frame{display:block;width:100%;height:min(70vh,900px);border:0;background:#fff}.text-view,.json-view{margin:0;white-space:pre-wrap;word-break:break-word;font:13px/1.7 ui-monospace,Courier New,monospace;padding:20px 24px;min-height:40vh}.text-view{color:#1a1a1a;background:#fff}.json-view{background:#0b0b0b;color:#d9d9d9}.json-key{color:#fff;font-weight:600}.json-string{color:#d9d9d9}.json-number{color:#e53935}.json-bool{color:#e53935;font-weight:600}.json-null{color:#6b6b6b}.edit-form{display:grid;gap:14px;padding:20px;background:#1a1a1a;color:#d9d9d9}.edit-row{display:flex;flex-wrap:wrap;gap:12px}.edit-field{display:grid;gap:6px;font-size:12px;font-weight:500;color:#d9d9d9}.edit-grow{flex:1 1 14rem}.edit-field input[type=text],.edit-field select,.edit-field textarea{padding:9px 12px;background:#0b0b0b;border:1px solid #333333;border-radius:12px;color:#fff;font-size:14px}.edit-field textarea{font:13px/1.6 ui-monospace,Courier New,monospace;resize:vertical;min-height:14rem}.edit-field input[type=color]{width:52px;height:38px;padding:3px;border:1px solid #333333;border-radius:12px;background:#0b0b0b;cursor:pointer}.edit-field :focus-visible{outline:2px solid #e53935;outline-offset:1px;border-color:#e53935}.edit-foot{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.edit-spacer{flex:1}.lib-msg-dark{color:#6b6b6b}.lib-msg-dark.err{color:#ff6b66}.lib-toast{position:fixed;bottom:32px;left:50%;transform:translate(-50%);background:#fff;color:#0b0b0b;padding:10px 22px;border-radius:999px;font-size:14px;font-weight:500;z-index:90;max-width:calc(100vw - 32px);box-shadow:0 10px 30px #00000080}.lib-toast.err{background:#e53935;color:#fff}
