.portal{--p-green:#1b3d22;--p-green-deep:#0c1c10;--p-green-mid:#245230;--p-gold:#fdb813;--p-red:#ed1c24;--p-bg:#f8f9fa;--p-surface:#ffffff;--p-soft:#eef3ed;--p-line:#c5d0c4;--p-line-soft:rgba(197,208,196,0.35);--p-muted:#5a6b5c;--p-ink:#191c1d;--p-radius:12px;min-height:100vh;background:var(--p-bg);color:var(--p-ink);font-family:Inter,ui-sans-serif,system-ui,sans-serif;display:flex;flex-direction:column}.portal a{color:inherit;text-decoration:none}.portal-topbar{position:-webkit-sticky;position:sticky;top:0;z-index:40;background:#fff;border-bottom:1px solid var(--p-line-soft);box-shadow:0 2px 10px rgba(0,0,0,.02)}.portal-topbar-inner{width:100%;max-width:none;margin:0;padding:0 40px;min-height:68px;display:flex;align-items:center;gap:28px;box-sizing:border-box}.portal-brand{display:flex;align-items:center;gap:12px;flex-shrink:0;min-width:0;max-width:min(420px,46vw)}.portal-brand-crest{height:52px;flex-shrink:0;background:transparent}.portal-brand-crest,.portal-brand-wordmark{display:block;width:auto;object-fit:contain}.portal-brand-wordmark{height:40px;max-width:100%;object-position:left center}.portal-top-nav{display:flex;align-items:center;gap:6px;flex:1 1;min-width:0}.portal-top-link{padding:9px 14px;border-radius:10px;font-size:.875rem;font-weight:700;color:var(--p-muted);transition:background .15s ease,color .15s ease}.portal-top-link:hover{background:rgba(27,61,34,.06);color:var(--p-green)}.portal-top-link.active{background:var(--p-green);color:#fff}.portal-topbar-user{display:flex;align-items:center;gap:14px;flex-shrink:0}.portal-topbar-user-copy{text-align:right;display:none}.portal-topbar-user-copy strong{display:block;font-size:.8rem;font-weight:700;color:var(--p-ink);line-height:1.2}.portal-topbar-user-copy span{display:block;margin-top:2px;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--p-muted)}.portal-topbar-signout{border:1px solid var(--p-line);background:#fff;color:var(--p-green);border-radius:10px;padding:9px 14px;font:inherit;font-size:.8rem;font-weight:700;cursor:pointer}.portal-topbar-signout:hover{background:rgba(27,61,34,.06)}.portal-main{flex:1 1;width:100%;max-width:none;margin:0;padding:28px 40px 48px;box-sizing:border-box}.portal-site-footer{border-top:1px solid var(--p-line-soft);background:#fff;text-align:center;padding:16px 20px;font-size:10px;font-family:JetBrains Mono,ui-monospace,monospace;letter-spacing:.04em;text-transform:uppercase;color:rgba(69,70,81,.7)}.portal-header{margin-bottom:22px}.portal-header-kicker{margin:0 0 6px;font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--p-gold)}.portal-header h1{margin:0;font-size:clamp(1.7rem,2.4vw,2.1rem);font-weight:800;color:var(--p-green);letter-spacing:-.02em}.portal-header-rule{margin-top:12px;height:3px;width:48px;border-radius:999px;background:var(--p-gold)}.portal-pad{padding:0}.portal-hero{position:relative;overflow:hidden;border-radius:var(--p-radius);padding:40px 44px;margin-bottom:22px;background:radial-gradient(circle at 88% 18%,rgba(253,184,19,.22),transparent 32%),linear-gradient(135deg,#0c1c10,#1b3d22 55%,#245230);color:#fff;border:1px solid rgba(27,61,34,.35);box-shadow:0 18px 40px rgba(27,61,34,.12);display:grid;grid-template-columns:1.4fr .8fr;grid-gap:24px;gap:24px;align-items:center}.portal-hero-copy{min-width:0}.portal-hero-eyebrow{margin:0 0 8px;font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--p-gold)}.portal-hero h1{margin:0;font-size:clamp(1.8rem,3vw,2.4rem);font-weight:800;letter-spacing:-.02em;line-height:1.15}.portal-hero-chip{display:inline-flex;margin-top:14px;padding:6px 12px;border-radius:8px;background:var(--p-gold);color:var(--p-green);font-size:.75rem;font-weight:800}.portal-hero p{margin:12px 0 0;max-width:42ch;color:rgba(255,253,248,.84);font-size:.95rem;line-height:1.5;font-weight:500}.portal-hero-bar{margin-top:18px;width:40px;height:3px;border-radius:999px;background:var(--p-gold)}.portal-hero-aside{display:none}.portal-search-dock{margin:0 0 28px}.portal-search{width:min(420px,100%);height:48px;border:1px solid var(--p-line);border-radius:999px;background:#fff;padding:0 18px;font:inherit;font-size:.9rem;font-weight:500;color:var(--p-ink);box-shadow:0 4px 16px rgba(0,0,0,.03)}.portal-search:focus{outline:2px solid rgba(27,61,34,.2);border-color:var(--p-green)}.portal-section{margin-top:32px}.portal-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:16px}.portal-section-label{margin:0 0 4px;font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--p-green)}.portal-section-title{margin:0;font-size:1.25rem;font-weight:800;color:var(--p-ink)}.portal-section-underline{margin-top:8px;width:32px;height:3px;border-radius:999px;background:var(--p-gold)}.portal-hscroll{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));grid-gap:16px;gap:16px}.portal-book-card{min-width:0}.portal-arrival-cover img,.portal-book-card img,.portal-detail-cover img,.portal-tile img{display:block;width:100%;height:100%;object-fit:cover}.portal-cover{position:relative;aspect-ratio:3/4;border-radius:var(--p-radius);overflow:hidden;background:var(--p-soft);border:1px solid var(--p-line-soft);box-shadow:0 8px 24px rgba(27,61,34,.08);transition:transform .15s ease,box-shadow .15s ease}.portal-book-card:hover .portal-cover,.portal-tile:hover .portal-cover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(27,61,34,.14)}.portal-cover-pill{position:absolute;left:8px;bottom:8px;padding:4px 8px;border-radius:6px;background:rgba(253,184,19,.95);color:var(--p-green);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.portal-book-title{margin:10px 0 2px;font-size:.92rem;font-weight:700;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.portal-book-author{margin:0;font-size:.8rem;color:var(--p-muted);font-weight:500}.portal-arrival-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.portal-arrival{display:flex;gap:14px;align-items:center;padding:14px;background:#fff;border:1px solid var(--p-line-soft);border-radius:var(--p-radius);box-shadow:0 4px 16px rgba(0,0,0,.03)}.portal-arrival-cover{width:52px;height:70px;border-radius:8px;overflow:hidden;flex-shrink:0;background:var(--p-soft)}.portal-arrival-meta{min-width:0;flex:1 1}.portal-arrival-cat{margin:0 0 2px;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#b8860b}.portal-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.portal-chip{height:40px;padding:0 14px;border-radius:10px;border:1px solid var(--p-line);background:#fff;color:var(--p-ink);font:inherit;font-size:.82rem;font-weight:700;cursor:pointer}.portal-chip.active{background:var(--p-green);border-color:var(--p-green);color:#fff}.portal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));grid-gap:18px;gap:18px}.portal-tile .portal-cover{aspect-ratio:2/3}.portal-empty{padding:40px 24px;text-align:center;color:var(--p-muted);background:#fff;border:1px dashed var(--p-line);border-radius:var(--p-radius)}.portal-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:12px 18px;border-radius:10px;border:1px solid transparent;font:inherit;font-size:.875rem;font-weight:800;cursor:pointer}.portal-btn.primary{background:var(--p-green);color:#fff}.portal-btn.secondary{background:var(--p-gold);color:var(--p-green)}.portal-btn.ghost{background:#fff;border-color:var(--p-line);color:var(--p-green)}.portal-btn.danger{background:#ffdad6;color:var(--p-red)}.portal-btn:disabled{opacity:.55;cursor:not-allowed}.portal-btn.block{width:100%}.portal-detail{display:grid;grid-template-columns:260px minmax(0,1fr);grid-gap:36px;gap:36px;align-items:start;padding-bottom:24px}.portal-detail-cover{width:100%;aspect-ratio:3/4;border-radius:var(--p-radius);overflow:hidden;border:1px solid var(--p-line-soft);box-shadow:0 16px 40px rgba(27,61,34,.14)}.portal-detail-body{min-width:0}.portal-detail-badge{display:inline-flex;margin-bottom:12px;padding:5px 10px;border-radius:8px;background:var(--p-gold);color:var(--p-green);font-size:11px;font-weight:800;text-transform:uppercase}.portal-detail h1{margin:0;font-size:clamp(1.7rem,2.6vw,2.2rem);font-weight:800;line-height:1.15;letter-spacing:-.02em}.portal-detail-author{margin:10px 0 0;font-style:italic;color:var(--p-muted);font-size:1.05rem}.portal-meta-card{margin-top:20px;padding:18px 20px;background:#fff;border:1px solid var(--p-line-soft);border-radius:var(--p-radius);box-shadow:0 4px 16px rgba(0,0,0,.03)}.portal-meta-card p{margin:0;color:var(--p-muted);line-height:1.55;font-size:.95rem}.portal-actions{margin-top:20px;display:flex;flex-wrap:wrap;gap:10px}.portal-actions .portal-btn.block{width:auto;min-width:180px}.portal-note{margin-top:14px;padding:12px 14px;border-radius:10px;background:var(--p-soft);color:var(--p-muted);font-size:.88rem;line-height:1.45;width:100%}.portal-profile-layout{display:grid;grid-template-columns:320px minmax(0,1fr);grid-gap:20px;gap:20px;align-items:start}.portal-profile-card{background:#fff;border:1px solid var(--p-line-soft);border-radius:var(--p-radius);padding:28px 22px;text-align:center;box-shadow:0 4px 16px rgba(0,0,0,.03)}.portal-avatar{width:84px;height:84px;margin:0 auto 14px;border-radius:16px;background:var(--p-green);color:#fff;display:grid;place-items:center;font-size:1.7rem;font-weight:800}.portal-profile-card h2{margin:0;font-size:1.25rem;font-weight:800}.portal-profile-card .email{margin:6px 0 0;color:var(--p-muted);font-size:.9rem}.portal-menu{background:#fff;border:1px solid var(--p-line-soft);border-radius:var(--p-radius);overflow:hidden;box-shadow:0 4px 16px rgba(0,0,0,.03)}.portal-menu-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid var(--p-line-soft);font-weight:600;font-size:.92rem}.portal-menu-item:last-child{border-bottom:0}.portal-error{background:#ffdad6;color:var(--p-red)}.portal-error,.portal-success{margin:0 0 14px;padding:12px 14px;border-radius:10px;font-size:.88rem;font-weight:600}.portal-success{background:rgba(27,61,34,.08);color:var(--p-green)}.portal-lead{margin:-8px 0 22px;color:var(--p-muted);font-size:.98rem;line-height:1.55;max-width:none}.portal-two-col{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-gap:20px;gap:20px;align-items:start;width:100%}.portal-card-form{background:#fff;border:1px solid var(--p-line-soft);border-radius:var(--p-radius);padding:22px 24px;box-shadow:0 4px 16px rgba(0,0,0,.03);width:100%;min-width:0}.portal-card-form h2{margin:0 0 16px;font-size:1.05rem;font-weight:800;padding-bottom:12px;border-bottom:1px solid var(--p-line-soft)}.portal-field{display:grid;grid-gap:6px;gap:6px;margin-bottom:14px}.portal-field span{font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--p-muted)}.portal-field input,.portal-field select,.portal-field textarea{width:100%;border:1px solid var(--p-line);border-radius:10px;padding:11px 12px;background:#fff;color:var(--p-ink);resize:vertical}.portal-field input:focus,.portal-field select:focus,.portal-field textarea:focus{outline:2px solid rgba(27,61,34,.2);border-color:var(--p-green)}.portal-wish-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:14px;gap:14px}.portal-wish-list li{padding-bottom:14px;border-bottom:1px solid var(--p-line-soft)}.portal-wish-list li:last-child{border-bottom:0;padding-bottom:0}.portal-wish-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.portal-wish-details{margin:8px 0 0;font-size:.9rem;line-height:1.45;color:var(--p-ink)}.portal-status{flex-shrink:0;padding:4px 8px;border-radius:8px;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;background:var(--p-soft);color:var(--p-muted)}.portal-status.pending{background:rgba(253,184,19,.22);color:#7a5a00}.portal-status.fulfilled{background:rgba(27,61,34,.12);color:var(--p-green)}.portal-status.rejected{background:#ffdad6;color:var(--p-red)}.portal-notes-layout{display:grid;grid-template-columns:minmax(240px,320px) minmax(0,1fr);grid-gap:20px;gap:20px;align-items:stretch;width:100%;min-height:calc(100vh - 220px)}.portal-notes-editor,.portal-notes-list{background:#fff;border:1px solid var(--p-line-soft);border-radius:var(--p-radius);box-shadow:0 4px 16px rgba(0,0,0,.03);min-width:0}.portal-notes-list{padding:16px;display:flex;flex-direction:column;gap:12px}.portal-notes-list ul{list-style:none;margin:0;padding:0;display:grid;grid-gap:6px;gap:6px;overflow:auto;flex:1 1}.portal-note-item{width:100%;text-align:left;border:1px solid transparent;background:transparent;border-radius:10px;padding:12px;cursor:pointer;font:inherit;display:grid;grid-gap:4px;gap:4px}.portal-note-item:hover{background:var(--p-soft)}.portal-note-item.active{background:rgba(27,61,34,.08);border-color:rgba(27,61,34,.18)}.portal-note-item strong{font-size:.92rem;font-weight:700;color:var(--p-ink)}.portal-notes-list .pad{padding:12px 4px}.portal-notes-editor{padding:22px 24px;display:flex;flex-direction:column}.portal-notes-editor .portal-field:last-of-type{flex:1 1;display:flex;flex-direction:column}.portal-notes-editor .portal-field:last-of-type textarea{flex:1 1;min-height:320px}.portal .muted{color:var(--p-muted)}.portal .small{font-size:.8rem}.portal-center{min-height:40vh;display:grid;place-items:center;padding:24px;color:var(--p-muted);text-align:center}.portal-reader{position:fixed;inset:0;z-index:50;background:#15171a;display:flex;flex-direction:column}.portal-reader-bar{flex-shrink:0;height:52px;display:flex;align-items:center;gap:12px;padding:0 12px;background:rgba(0,0,0,.72);color:#e8f0e9}.portal-reader-bar a,.portal-reader-bar button{background:rgba(255,255,255,.12);border:0;color:inherit;border-radius:8px;padding:8px 12px;font:inherit;font-size:.85rem;font-weight:700;cursor:pointer;text-decoration:none}.portal-reader-zoom{display:flex;align-items:center;gap:6px;flex-shrink:0}.portal-reader-zoom button{min-width:36px}.portal-reader-title{flex:1 1;min-width:0;font-size:.85rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.portal-reader iframe{flex:1 1;width:100%;border:0;background:#15171a}.portal-login-foot{margin-top:28px;text-align:center;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--p-muted);font-weight:600}@media (min-width:720px){.portal-topbar-user-copy{display:block}.portal-hero-aside{display:block;height:160px;border-radius:12px;background:linear-gradient(160deg,rgba(253,184,19,.2),transparent 50%),url(/home-banner.png) 50% /cover no-repeat;border:1px solid rgba(255,255,255,.12)}}@media (max-width:840px){.portal-main,.portal-topbar-inner{padding-left:24px;padding-right:24px}.portal-hero{padding:28px 22px}.portal-arrival-list,.portal-detail,.portal-hero,.portal-notes-layout,.portal-profile-layout,.portal-two-col{grid-template-columns:1fr}.portal-notes-layout{min-height:0}.portal-detail-cover{width:min(240px,70%);margin:0 auto}.portal-actions .portal-btn.block{width:100%}.portal-top-nav{gap:2px}.portal-top-link{padding:8px 10px;font-size:.8rem}.portal-brand{max-width:min(280px,58vw);gap:8px}.portal-brand-crest{height:42px}.portal-brand-wordmark{height:30px}}@media (max-width:560px){.portal-topbar-inner{flex-wrap:wrap;padding:10px 20px;gap:10px}.portal-top-nav{order:3;width:100%;justify-content:space-between}.portal-topbar-user{margin-left:auto}.portal-grid,.portal-hscroll{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}}