:root{font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body,#root{min-height:100%;width:100%;margin:0}body{min-width:320px}a{color:inherit;text-decoration:none}:root{--bg:#f4f7fc;--bg2:#eef4ff;--card:#ffffffee;--card2:#ffffff;--line:#d8e3f4;--txt:#183153;--txt-soft:#6f7f98;--muted:#6f7f98;--accent:#3b82f6;--accent-strong:#2563eb;--accent2:#8b5cf6;--success:#16a34a;--danger:#e11d48;--shadow: 0 18px 40px rgba(27, 60, 110, .1);--shadow-sm: 0 10px 24px rgba(27, 60, 110, .08);--shadow-md: 0 18px 36px rgba(27, 60, 110, .1);--shadow-lg: 0 24px 60px rgba(18, 36, 72, .18);--radius: 22px}html,body,#root{height:100%;width:100%}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--txt);background:radial-gradient(1200px 700px at 10% 0%,rgba(59,130,246,.14),transparent 60%),radial-gradient(900px 700px at 100% 10%,rgba(139,92,246,.1),transparent 55%),linear-gradient(180deg,#f9fbff,#eef4fb)}*{box-sizing:border-box}button,input,select,textarea{font:inherit}.authWrap{min-height:100vh;display:grid;place-items:center;padding:24px}.authCard{width:min(1040px,96vw);background:var(--card);border:1px solid rgba(151,174,214,.22);border-radius:30px;padding:24px;box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.top{display:flex;align-items:center;justify-content:space-between;gap:10px}.title{font-weight:900;font-size:1.9rem;line-height:1.05;letter-spacing:-.02em}.subtitle{font-size:12px;color:var(--muted);margin-top:4px}.chip{font-size:11px;padding:7px 11px;border-radius:999px;border:1px solid rgba(59,130,246,.18);color:#2563eb;background:#3b82f61a;white-space:nowrap;font-weight:800}.chipSoft{background:#0f172a0a;color:var(--txt)}.heroBanner{margin-top:16px;border-radius:24px;padding:24px;border:1px solid rgba(151,174,214,.18);background:radial-gradient(circle at top left,rgba(59,130,246,.12),transparent 30%),linear-gradient(180deg,#fffffffa,#f7fbffeb);display:grid;grid-template-columns:1.3fr .9fr;gap:18px;align-items:center;box-shadow:var(--shadow-sm)}.heroKicker{display:inline-block;padding:6px 10px;border-radius:999px;background:#3b82f61f;color:#2563eb;font-size:12px;font-weight:800}.heroText h1{margin:12px 0 8px;font-size:clamp(2rem,3vw,3.2rem);line-height:1.03;letter-spacing:-.03em}.muted{color:var(--muted);font-size:14px;line-height:1.55;margin:10px 0 0}.small{font-size:12px}.heroBooks{display:flex;justify-content:center;align-items:flex-end;gap:14px}.heroBook{width:88px;height:160px;border-radius:18px;box-shadow:0 14px 28px #00000024;border:1px solid rgba(255,255,255,.6)}.heroBook1{background:linear-gradient(180deg,#60a5fa,#2563eb)}.heroBook2{height:185px;background:linear-gradient(180deg,#f59e0b,#ef4444)}.heroBook3{background:linear-gradient(180deg,#34d399,#059669)}label{display:block;font-size:12px;color:var(--txt);margin:14px 0 6px;font-weight:700}input,select,textarea{width:100%;padding:12px 13px;border-radius:14px;border:1px solid rgba(151,174,214,.34);background:#fffffff5;color:var(--txt);outline:none;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}input:focus,select:focus,textarea:focus{border-color:#3b82f6b3;box-shadow:0 0 0 3px #3b82f61f}.tabs{display:flex;gap:10px;margin:18px 0 8px}.tab{flex:1;padding:11px 12px;border-radius:14px;border:1px solid rgba(151,174,214,.28);background:#f8fbff;color:var(--txt);cursor:pointer;font-weight:800;transition:all .18s ease}.tab.active{border-color:#3b82f666;background:#3b82f61a;color:#2563eb}.btn{width:100%;padding:12px;border-radius:14px;border:1px solid transparent;cursor:pointer;font-weight:800;margin-top:12px;transition:transform .12s ease,filter .18s ease,box-shadow .18s ease,background .18s ease}.btn:hover{filter:saturate(1.04)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.65;cursor:not-allowed}.primary{background:linear-gradient(90deg,#60a5fa,#3b82f6);color:#fff;box-shadow:0 12px 22px #3b82f633}.secondary{background:#ffffffeb;color:var(--txt);border-color:#97aed64d}.danger{background:#e11d481a;color:#be123c;border-color:#e11d482e}.msg{padding:10px 12px;border-radius:14px;margin-top:12px;font-size:13px}.msg.error{background:#e11d4814;border:1px solid rgba(225,29,72,.16);color:#be123c}.msg.ok{background:#16a34a14;border:1px solid rgba(22,163,74,.15);color:#166534}.panel{margin-top:12px;padding:12px;border:1px solid rgba(151,174,214,.22);border-radius:18px;background:#ffffffe0;display:grid;gap:6px;font-size:13px}.surfaceCard{padding:18px;border-radius:22px;border:1px solid rgba(151,174,214,.24);background:#ffffffc7;box-shadow:var(--shadow-sm)}.sectionTitle{font-size:1.1rem;font-weight:900;letter-spacing:-.02em}.sectionSubtitle{margin-top:4px;color:var(--txt-soft);font-size:13px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.hint{margin-top:14px;color:var(--muted);font-size:12px}.code{padding:2px 6px;border-radius:10px;border:1px solid rgba(151,174,214,.28);background:#fff;color:#2563eb;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.workspace{min-height:100vh;display:flex}.sidebar{width:304px;padding:20px;border-right:1px solid rgba(151,174,214,.18);background:#ffffffa8;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);display:flex;flex-direction:column;gap:18px;position:sticky;top:0;height:100vh;box-shadow:inset -1px 0 #ffffff8c}.sidebarBrand{padding:10px 8px 4px}.sidebarTitle{font-size:1.35rem;font-weight:900;letter-spacing:-.02em}.sidebarSub{color:var(--muted);font-size:12px;margin-top:2px}.profileCard{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid rgba(151,174,214,.24);background:#ffffffd6;border-radius:18px;box-shadow:var(--shadow-sm)}.avatar{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;font-weight:900;color:#fff;background:linear-gradient(135deg,#60a5fa,#8b5cf6);box-shadow:0 10px 18px #3b82f62e}.profileName{font-weight:800;word-break:break-word}.profileRole{font-size:12px;color:var(--muted);margin-top:2px}.sideNav{display:grid;gap:10px}.sideBtn{width:100%;text-align:left;padding:14px 16px;border-radius:18px;border:1px solid rgba(151,174,214,.26);background:#ffffffdb;color:var(--txt);cursor:pointer;font-weight:800;box-shadow:0 10px 18px #192a4f0a;transition:all .2s ease}.sideBtn:hover,.sideBtn.active{transform:translateY(-1px)}.sideBtn.active{background:linear-gradient(135deg,#3b82f624,#8b5cf614);color:var(--accent-strong);border-color:#3b82f63d;box-shadow:0 14px 28px #3b82f61a}.sidebarTools{margin-top:auto;display:grid;gap:10px}.mainPane{flex:1;padding:22px}.mainHeader{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.mainHeaderLeft{display:flex;align-items:center;gap:14px}.pageTitle{font-size:1.7rem;font-weight:900;letter-spacing:-.03em}.hamburger{width:52px;height:52px;border-radius:16px;border:1px solid rgba(151,174,214,.28);background:#ffffffd9;cursor:pointer;display:flex;flex-direction:column;justify-content:center;gap:6px;padding:0 13px;transition:all .22s ease;box-shadow:var(--shadow-sm)}.hamburger:hover{transform:translateY(-1px)}.hamburger span{height:2px;border-radius:999px;background:var(--txt);display:block;transition:all .22s ease}.hamburger.open span:nth-child(1){transform:translateY(8px) rotate(45deg)}.hamburger.open span:nth-child(2){opacity:0}.hamburger.open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}.contentCard{border:1px solid rgba(151,174,214,.22);border-radius:24px;background:#ffffffb8;box-shadow:var(--shadow);padding:18px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.flashWrap{margin-bottom:14px}.catalogGrid,.loansGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.bookCard{text-align:left;padding:14px;border-radius:18px;border:1px solid rgba(151,174,214,.24);background:#ffffffeb;color:var(--txt);cursor:pointer;transition:all .2s ease}.bookCard:hover{transform:translateY(-2px);border-color:#3b82f647;box-shadow:0 16px 28px #203e701a}.bookCardRow{display:grid;grid-template-columns:82px minmax(0,1fr);gap:14px;align-items:center}.bookThumb{width:82px;height:116px;border-radius:16px;border:1px solid rgba(255,255,255,.6);box-shadow:0 12px 22px #00000014;position:relative;overflow:hidden}.bookThumb:after{content:"";position:absolute;left:10px;top:0;bottom:0;width:6px;background:#ffffff3d;border-radius:999px}.bookTitle{font-weight:900;margin-bottom:4px;color:var(--txt);line-height:1.18;letter-spacing:-.01em;word-break:break-word}.toolbar{display:flex;gap:10px;flex-wrap:wrap}.metaTag{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:999px;background:#3b82f614;border:1px solid rgba(59,130,246,.14);color:#31558f;font-size:12px;font-weight:800}.bookDetailsShell{display:grid;gap:18px}.bookBackBar{width:auto;min-width:180px;margin-top:0}.bookDetailsCard{display:grid;grid-template-columns:180px minmax(0,1fr);gap:24px;align-items:start;padding:18px;border:1px solid rgba(151,174,214,.22);border-radius:22px;background:linear-gradient(180deg,#fffffff5,#f8fbffeb);box-shadow:var(--shadow-md)}.bookDetailsCoverWrap{width:180px;min-width:180px}.bookDetailsCover{width:100%;aspect-ratio:2 / 3;border-radius:20px;overflow:hidden;position:relative;box-shadow:0 18px 34px #17315f24;border:1px solid rgba(255,255,255,.75)}.bookDetailsCover:after{content:"";position:absolute;left:12px;top:0;bottom:0;width:6px;border-radius:999px;background:#ffffff38}.bookDetailsBody{min-width:0;display:grid;gap:16px}.bookDetailsHeader{min-width:0}.bookDetailsTitle{margin:0 0 8px;font-size:clamp(1.8rem,3vw,2.6rem);line-height:1.05;font-weight:900;color:var(--txt);letter-spacing:-.02em;word-break:break-word}.bookDetailsMeta{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.bookDetailsDesc{color:var(--txt-soft);line-height:1.65;font-size:14px;max-width:72ch}.bookInfoGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.infoMiniCard{padding:14px;border-radius:18px;border:1px solid rgba(151,174,214,.24);background:#ffffffd1}.infoMiniLabel{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--txt-soft);margin-bottom:6px;font-weight:800}.infoMiniValue{font-size:14px;font-weight:800;color:var(--txt);word-break:break-word}.loanStateCard{padding:18px;border-radius:20px;border:1px solid rgba(59,130,246,.14);background:linear-gradient(180deg,#f8fbff,#eef4ff)}.loanStateTitle{font-size:1rem;font-weight:900;margin-bottom:10px}.loanStateText{color:var(--txt-soft);font-size:14px;margin:6px 0}.bookActionRow{display:flex;gap:12px;flex-wrap:wrap;margin-top:4px}.bookActionRow .btn{width:auto;min-width:180px;margin-top:0;min-height:48px;padding:0 18px;border-radius:16px}.loanCard{padding:16px;border-radius:20px;border:1px solid rgba(151,174,214,.24);background:#ffffffdb;box-shadow:var(--shadow-sm)}.modalOverlay{position:fixed;inset:0;background:#141e3c40;display:grid;place-items:center;padding:18px;z-index:50;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal{width:min(520px,96vw);background:#fff;color:var(--txt);border-radius:18px;border:1px solid rgba(151,174,214,.26);box-shadow:var(--shadow-lg);padding:16px}.sidebarScrim{position:fixed;inset:0;background:#09122538;border:0;z-index:30;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}@media(min-width:961px){.sidebarScrim{display:none}}@media(max-width:960px){.workspace{display:block}.sidebar{position:fixed;left:0;top:0;bottom:0;z-index:40;transform:translate(-105%);transition:transform .25s ease;box-shadow:var(--shadow-lg)}.sidebar.open{transform:translate(0)}.mainPane{padding:14px}.bookDetailsCard{display:grid;grid-template-columns:180px minmax(0,1fr);gap:24px;align-items:start}.bookDetailsCoverWrap{width:180px;min-width:180px;margin:0 auto}.bookDetailsBody{min-width:0}.bookDetailsTitle{word-break:break-word}.bookInfoGrid{grid-template-columns:1fr}}@media(max-width:760px){.authCard,.contentCard{padding:14px}.heroBanner,.grid2{grid-template-columns:1fr}.mainHeader{flex-direction:column;align-items:stretch}.bookCardRow{grid-template-columns:1fr}.bookThumb{width:100%;height:160px}.bookActionRow{flex-direction:column}.bookActionRow .btn{width:100%;min-width:0}}@media(max-width:960px){.contentCard>div[style*="grid-template-columns: 1.15fr 0.85fr"]{grid-template-columns:1fr!important}}
