:root{--ruby:#9f1239;--ruby2:#be123c;--ruby3:#fb7185;--ink:#1f2937;--muted:#64748b;--line:#e8eaf0;--bg:#f7f7fa;--card:#fff;--soft:#fff1f2;--sky:#38bdf8;--shadow:0 12px 30px rgba(15,23,42,.07)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:'DM Sans',sans-serif;color:var(--ink);background:var(--bg)}body.dark{--ink:#e5e7eb;--muted:#94a3b8;--line:#273244;--bg:#0f172a;--card:#111c2e;--soft:#341321;--shadow:0 12px 30px rgba(0,0,0,.25)}a{text-decoration:none;color:inherit}.app-shell{display:flex;min-height:100vh}.sidebar{width:250px;background:#fff;border-right:1px solid var(--line);padding:22px 15px;position:fixed;inset:0 auto 0 0;z-index:20;display:flex;flex-direction:column}.dark .sidebar{background:#0b1322}.brand{display:flex;gap:11px;align-items:center;padding:3px 12px 26px}.brand-mark{width:40px;height:40px;border-radius:13px;background:linear-gradient(135deg,var(--ruby),#e11d48);color:#fff;display:grid;place-items:center;box-shadow:0 8px 18px rgba(159,18,57,.22)}.brand b{font:800 21px Manrope}.brand span{display:block;color:var(--ruby);font-size:9px;font-weight:800;letter-spacing:2px;margin-top:-2px}.side-label{font-size:10px;font-weight:800;color:#9aa4b2;letter-spacing:1.2px;padding:12px 12px 8px}.nav-link{display:flex;align-items:center;gap:12px;padding:11px 13px;margin:3px 0;border-radius:12px;color:#64748b;font-weight:600;font-size:14px}.nav-link i{width:19px;text-align:center}.nav-link:hover{background:var(--soft);color:var(--ruby)}.nav-link.active{background:linear-gradient(90deg,#fff1f2,#ffe4e6);color:var(--ruby);font-weight:800}.dark .nav-link.active{background:#341321}.sidebar-bottom{margin-top:auto}.mini-card{display:flex;gap:9px;align-items:center;background:var(--soft);padding:12px;border-radius:14px;color:var(--ruby)}.mini-card small{display:block;color:var(--muted);font-size:9px;margin-top:2px}.main-content{margin-left:250px;min-width:0;flex:1}.topbar{height:72px;background:rgba(255,255,255,.86);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 30px;position:sticky;top:0;z-index:10}.dark .topbar{background:rgba(11,19,34,.9)}.crumb{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:13px}.crumb i{font-size:9px}.crumb b{color:var(--ink)}.top-actions{display:flex;align-items:center;gap:8px}.icon-btn{width:38px;height:38px;border:1px solid var(--line);border-radius:11px;background:var(--card);display:grid;place-items:center;color:var(--muted);cursor:pointer}.icon-btn:hover{color:var(--ruby);border-color:#fecdd3}.profile{display:flex;align-items:center;gap:9px;margin-left:7px;padding-left:13px;border-left:1px solid var(--line)}.avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#ffe4e6;color:var(--ruby);font-weight:800}.profile b{font-size:12px}.profile small{display:block;color:var(--muted);font-size:10px}.logout{color:#94a3b8;margin-left:7px}.content-wrap{padding:27px 30px;max-width:1500px;margin:auto}.footer{text-align:center;color:#9aa4b2;font-size:11px;padding:20px}.page-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:22px}.eyebrow{font-size:11px;color:var(--ruby);font-weight:800;letter-spacing:1.2px;text-transform:uppercase}.page-title{font:800 28px Manrope;margin:4px 0}.page-sub{color:var(--muted);font-size:13px;margin:0}.btn{border:0;border-radius:11px;padding:10px 14px;display:inline-flex;align-items:center;gap:8px;font:700 12px 'DM Sans';cursor:pointer}.btn-primary{background:var(--ruby);color:#fff;box-shadow:0 7px 15px rgba(159,18,57,.18)}.btn-primary:hover{background:#881337}.btn-light{background:var(--card);border:1px solid var(--line);color:var(--ink)}.btn-danger{background:#fee2e2;color:#b91c1c}.grid{display:grid;gap:17px}.stats-grid{grid-template-columns:repeat(4,1fr)}.stat-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:var(--shadow)}.stat-top{display:flex;justify-content:space-between}.stat-icon{width:40px;height:40px;border-radius:12px;background:var(--soft);color:var(--ruby);display:grid;place-items:center}.stat-value{font:800 27px Manrope;margin:12px 0 3px}.stat-label{font-size:11px;color:var(--muted);font-weight:600}.trend{font-size:10px;color:#16a34a;font-weight:800}.dashboard-grid{grid-template-columns:1.5fr 1fr;margin-top:17px}.card{background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);overflow:hidden}.card-head{padding:17px 19px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.card-head h3{font:800 14px Manrope;margin:0}.card-head span{font-size:11px;color:var(--muted)}.card-body{padding:19px}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;font-size:12px}.table th{text-align:left;color:#8b95a5;font-size:10px;text-transform:uppercase;letter-spacing:.7px;padding:11px 14px;background:#fafafa}.dark .table th{background:#0d1728}.table td{padding:13px 14px;border-top:1px solid var(--line);vertical-align:middle}.table tr:hover td{background:rgba(159,18,57,.025)}.badge{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:9px;font-weight:800}.badge-success{background:#dcfce7;color:#15803d}.badge-warning{background:#fef3c7;color:#a16207}.badge-danger{background:#fee2e2;color:#b91c1c}.badge-muted{background:#f1f5f9;color:#64748b}.book-mini{display:flex;align-items:center;gap:10px}.book-mini img{width:32px;height:44px;object-fit:cover;border-radius:5px}.book-mini b{font-size:12px}.book-mini small{display:block;color:var(--muted);margin-top:3px}.cover{width:54px;height:74px;object-fit:cover;border-radius:7px;box-shadow:0 5px 10px rgba(15,23,42,.12)}.bar-list{display:flex;flex-direction:column;gap:16px}.bar-row{display:grid;grid-template-columns:85px 1fr 35px;gap:10px;align-items:center;font-size:11px}.bar-track{height:9px;background:#f1f5f9;border-radius:20px;overflow:hidden}.dark .bar-track{background:#1e293b}.bar-fill{height:100%;background:linear-gradient(90deg,var(--ruby),#fb7185);border-radius:20px}.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.quick{border:1px solid var(--line);border-radius:14px;padding:14px;transition:.2s}.quick:hover{transform:translateY(-2px);border-color:#fda4af}.quick i{color:var(--ruby);font-size:17px}.quick b{display:block;font-size:11px;margin-top:9px}.quick small{color:var(--muted);font-size:9px}.alert{padding:12px 15px;border-radius:12px;margin-bottom:16px;font-size:12px;display:flex;gap:9px;align-items:center}.alert.success{background:#ecfdf5;color:#047857}.alert.danger{background:#fef2f2;color:#b91c1c}.toolbar{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-bottom:15px}.search{position:relative;flex:1;min-width:220px}.search i{position:absolute;left:12px;top:11px;color:#94a3b8}.search input{padding-left:35px}.form-control,.select{width:100%;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:10px;padding:10px 12px;font:500 12px 'DM Sans';outline:none}.form-control:focus,.select:focus{border-color:#fb7185;box-shadow:0 0 0 3px #ffe4e6}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.form-group label{display:block;font-size:11px;font-weight:800;margin-bottom:6px}.full{grid-column:1/-1}.cover-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}.book-card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px;transition:.2s}.book-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.book-card img{width:100%;aspect-ratio:3/4.3;object-fit:cover;border-radius:9px}.book-card h4{font-size:12px;margin:9px 0 4px}.book-card p{font-size:10px;color:var(--muted);margin:0}.opac-hero{background:linear-gradient(135deg,#7f1d3a 0%,#9f1239 48%,#be123c 100%);border-radius:22px;padding:31px;color:#fff;position:relative;overflow:hidden;margin-bottom:20px}.opac-hero:after{content:'✦';position:absolute;right:55px;top:-20px;font-size:170px;color:rgba(255,255,255,.07)}.opac-hero h1{font:800 30px Manrope;margin:0 0 7px}.opac-hero p{color:#fecdd3;font-size:12px;margin:0 0 20px}.opac-search{background:#fff;border-radius:13px;padding:6px;display:flex;max-width:800px}.opac-search input{border:0;outline:0;flex:1;padding:10px;font-size:12px}.opac-search button{border:0;background:var(--ruby);color:#fff;border-radius:9px;padding:0 18px;font-weight:800}.result-count{font-size:11px;color:var(--muted);margin:17px 0}.actions{display:flex;gap:5px}.mini-btn{width:30px;height:30px;border:1px solid var(--line);border-radius:8px;background:var(--card);display:grid;place-items:center;color:var(--muted)}.mobile-toggle{display:none}.print-preview{background:#e2e8f0;padding:30px;border-radius:16px}.label-sheet{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.book-label{background:#fff;border:1px solid #111;color:#111;width:63mm;height:35mm;padding:4mm;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.book-label .classno{font:800 15px monospace}.book-label .label-title{font:700 8px Arial;white-space:nowrap;overflow:hidden;max-width:100%}.barcode-box{margin-top:3mm}.barcode-bars{height:11mm;display:flex;align-items:stretch;justify-content:center}.barcode-bars span{display:block;height:100%}.barcode-num{font:8px monospace;margin-top:1mm}.member-sheet{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.member-card{width:85.6mm;height:54mm;border-radius:4mm;background:linear-gradient(135deg,#e0f7ff,#bae6fd);position:relative;overflow:hidden;color:#0f3a52;padding:5mm;box-shadow:0 5px 12px rgba(15,23,42,.12)}.member-card:after{content:'';position:absolute;width:45mm;height:45mm;border-radius:50%;background:rgba(255,255,255,.35);right:-18mm;top:-15mm}.mc-top{display:flex;justify-content:space-between;align-items:center}.mc-brand{font:800 10px Manrope}.mc-brand small{display:block;font:700 6px 'DM Sans';letter-spacing:1px}.mc-icon{width:8mm;height:8mm;border-radius:2mm;background:#fff;display:grid;place-items:center}.mc-title{font:800 10px Manrope;text-align:center;margin-top:2mm;letter-spacing:.7px}.mc-body{display:flex;gap:4mm;align-items:center;margin-top:3mm}.mc-photo{width:21mm;height:26mm;border-radius:2mm;background:#fff;display:grid;place-items:center;overflow:hidden;border:1px solid rgba(15,58,82,.12)}.mc-photo i{font-size:18px;color:#7dd3fc}.mc-info b{font-size:10px}.mc-info p{font-size:7px;margin:2mm 0}.mc-info span{font:800 8px monospace}.mc-footer{position:absolute;bottom:3mm;left:5mm;right:5mm;font-size:6px;display:flex;justify-content:space-between}.report-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:17px}.report-grid .wide{grid-column:1/-1}.kpi-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.kpi{padding:14px;background:var(--soft);border-radius:12px}.kpi small{font-size:10px;color:var(--muted)}.kpi b{display:block;font:800 20px Manrope;margin-top:5px}.login-page{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr;background:#fff}.login-art{background:linear-gradient(145deg,#70132f,#9f1239 55%,#be123c);color:#fff;padding:65px;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.login-art:before,.login-art:after{content:'';position:absolute;border:1px solid rgba(255,255,255,.12);border-radius:50%}.login-art:before{width:480px;height:480px;right:-180px;top:-100px}.login-art:after{width:340px;height:340px;left:-200px;bottom:-130px}.login-brand{display:flex;gap:12px;align-items:center;position:relative;z-index:1}.login-brand .brand-mark{background:rgba(255,255,255,.15)}.login-art h1{font:800 45px Manrope;max-width:520px;line-height:1.08;position:relative;z-index:1}.login-art p{max-width:490px;color:#fecdd3;line-height:1.7;font-size:14px;position:relative;z-index:1}.login-points{display:flex;gap:9px;flex-wrap:wrap;position:relative;z-index:1}.login-points span{background:rgba(255,255,255,.1);padding:8px 10px;border-radius:99px;font-size:10px}.login-box{display:flex;align-items:center;justify-content:center;padding:40px}.login-form{width:390px}.login-form h2{font:800 29px Manrope;margin:0 0 5px}.login-form .sub{color:var(--muted);font-size:12px;margin-bottom:25px}.login-form .form-group{margin-bottom:14px}.login-form label{font-size:11px}.login-form .btn{width:100%;justify-content:center;padding:13px}.hint{margin-top:17px;background:#f8fafc;border-radius:10px;padding:11px;font-size:10px;color:#64748b}.dark .hint{background:#172235}.empty{text-align:center;padding:45px;color:var(--muted)}
@media(max-width:1050px){.stats-grid{grid-template-columns:repeat(2,1fr)}.cover-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:800px){.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:translateX(0)}.main-content{margin-left:0}.mobile-toggle{display:grid}.topbar{padding:0 15px}.crumb span,.crumb i{display:none}.profile>div:not(.avatar),.logout{display:none}.content-wrap{padding:20px 15px}.dashboard-grid,.report-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.full{grid-column:auto}.cover-grid{grid-template-columns:repeat(2,1fr)}.login-page{grid-template-columns:1fr}.login-art{display:none}.login-box{min-height:100vh}.member-sheet{grid-template-columns:1fr}.label-sheet{grid-template-columns:1fr}}
@media print{body{background:#fff!important}.sidebar,.topbar,.footer,.page-head,.toolbar,.no-print{display:none!important}.main-content{margin:0}.content-wrap{padding:0}.print-preview{background:#fff;padding:0}.label-sheet{gap:0;grid-template-columns:repeat(3,63mm)}.book-label{break-inside:avoid}.member-sheet{gap:4mm;grid-template-columns:repeat(2,85.6mm)}.member-card{box-shadow:none;break-inside:avoid}@page{margin:10mm}}

/* ArinnLibrary v2 additions */
.form-help{display:block;color:var(--muted);font-size:10px;margin-top:5px;line-height:1.5}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.upload-preview{display:block;width:80px;height:100px;object-fit:cover;border-radius:10px;margin-top:8px;border:1px solid var(--line)}.cover-upload-preview{display:block;width:95px;height:135px;object-fit:cover;border-radius:10px;margin-top:8px;border:1px solid var(--line)}.member-avatar{width:38px;height:38px;border-radius:50%;overflow:hidden;background:#e0f2fe;color:#0369a1;display:grid;place-items:center;font-weight:800}.member-avatar img{width:100%;height:100%;object-fit:cover}.section-note{padding:13px 15px;background:var(--soft);border:1px solid #fecdd3;border-radius:12px;color:var(--ruby);display:flex;flex-direction:column;gap:4px}.section-note span{font-size:10px;color:var(--muted)}.login-tabs{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:17px}.login-tabs a{border:1px solid var(--line);border-radius:11px;padding:10px;text-align:center;font-size:11px;font-weight:800;color:var(--muted)}.login-tabs a.active{background:var(--soft);color:var(--ruby);border-color:#fecdd3}.visitor-link{display:block;text-align:center;margin-top:14px;font-size:11px;color:var(--ruby);font-weight:800}.public-nav{height:72px;padding:0 30px;border-bottom:1px solid var(--line);background:var(--card);display:flex;align-items:center;justify-content:space-between}.public-nav .brand{padding:0}.visitor-page{min-height:calc(100vh - 72px);display:grid;place-items:center;padding:35px;background:radial-gradient(circle at 20% 10%,#fff1f2,transparent 30%),var(--bg)}.visitor-card{width:min(500px,100%);background:var(--card);border:1px solid var(--line);border-radius:24px;padding:30px;box-shadow:var(--shadow)}.visitor-icon{width:54px;height:54px;border-radius:17px;background:var(--soft);color:var(--ruby);display:grid;place-items:center;font-size:22px;margin-bottom:16px}.visitor-card h1{font:800 30px Manrope;margin:5px 0}.visitor-card>p{font-size:12px;color:var(--muted);line-height:1.6;margin-bottom:22px}.visitor-card .form-group{margin-bottom:14px}.visitor-opac{display:block;text-align:center;margin-top:16px;color:var(--ruby);font-size:11px;font-weight:800}.portal-hero{background:linear-gradient(135deg,#7f1d3a,#be123c);border-radius:22px;color:#fff;padding:27px;display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.portal-hero h1{font:800 30px Manrope;margin:4px 0}.portal-hero p{color:#fecdd3;font-size:12px}.member-badge{background:rgba(255,255,255,.13);padding:14px 18px;border-radius:15px;min-width:150px}.member-badge i{font-size:20px;display:block;margin-bottom:7px}.member-badge b{display:block;font-size:12px}.member-badge small{font-size:9px;color:#fecdd3}.member-portal{min-height:100vh;background:var(--bg)}.mc-photo img{width:100%;height:100%;object-fit:cover}.mc-barcode{position:absolute;right:5mm;bottom:8mm;width:30mm;background:rgba(255,255,255,.75);padding:1mm;border-radius:1mm;text-align:center}.mc-barcode .barcode-bars{height:7mm;display:flex;justify-content:center;align-items:stretch;overflow:hidden}.mc-barcode .barcode-num{font-size:5px;margin-top:.5mm}.book-label{border-radius:0}.book-label .label-author{font:700 7px Arial;margin-top:1mm}.book-label .barcode-bars{min-width:38mm}.barcode-box{max-width:50mm}.barcode-bars{overflow:hidden;background:#fff}.barcode-bars span{flex:0 0 auto}
@media print{.mc-barcode{print-color-adjust:exact;-webkit-print-color-adjust:exact}.book-label{border:0.3mm solid #111}.barcode-bars{print-color-adjust:exact;-webkit-print-color-adjust:exact}}
/* ArinnLibrary v3 print formats */
.spine-sheet,.barcode-sheet{display:flex;flex-wrap:wrap;gap:6mm;align-items:flex-start;padding:8mm;background:#f7f7f8}
.spine-label{width:63mm;height:35mm;box-sizing:border-box;border:1px solid #222;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:3mm;overflow:hidden;color:#111}
.spine-class{font:800 15pt Manrope,Arial}.spine-author{font:700 11pt Manrope,Arial;margin-top:1mm}.spine-title{font:800 8pt Manrope,Arial;line-height:1.15;margin-top:2mm;max-height:13mm;overflow:hidden}.spine-publisher{font:500 7pt Arial;margin-top:1.5mm}
.barcode-sheet{gap:5mm}.barcode-label{width:50mm;height:25mm;box-sizing:border-box;border:1px solid #222;background:#fff;padding:2.5mm;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#111;overflow:hidden}.barcode-book{font:700 7pt Arial;max-width:45mm;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:1mm}.barcode-bars{height:11mm;display:flex;align-items:stretch;justify-content:center;overflow:hidden;width:45mm}.barcode-bars span{height:100%;display:block}.barcode-num{font:700 7pt Arial;letter-spacing:.5px;margin-top:1mm}.barcode-copy{font:600 6pt Arial;margin-top:.5mm}
.member-sheet{display:flex;flex-wrap:wrap;gap:8mm;padding:8mm;background:#f7f7f8}.member-card{width:85.6mm;height:54mm;box-sizing:border-box;border-radius:3mm;overflow:hidden;position:relative;padding:5mm;background:linear-gradient(135deg,#dff6ff,#87ceeb);color:#123;border:1px solid #5bb6d9;break-inside:avoid}.mc-top{display:flex;justify-content:space-between;align-items:flex-start}.mc-brand{font:800 10pt Manrope}.mc-brand small{display:block;font:600 5pt Arial;letter-spacing:1px}.mc-icon{font-size:14pt}.mc-title{font:800 6.5pt Arial;letter-spacing:.8px;margin-top:2mm}.mc-body{display:flex;gap:3mm;margin-top:2.5mm}.mc-photo{width:18mm;height:22mm;border-radius:2mm;background:#fff;border:1px solid #b6dce9;overflow:hidden;display:flex;align-items:center;justify-content:center;font-size:15pt}.mc-photo img{width:100%;height:100%;object-fit:cover}.mc-info{font:500 6pt Arial;min-width:0}.mc-info>b{font:800 8pt Manrope;display:block;max-width:48mm;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mc-info p{margin:1mm 0}.mc-info span{font-weight:800}.mc-barcode{position:absolute;right:5mm;bottom:6mm;width:45mm;text-align:center}.mc-barcode .barcode-bars{width:45mm;height:9mm}.mc-footer{position:absolute;left:5mm;right:5mm;bottom:2.5mm;display:flex;justify-content:space-between;font:600 4.8pt Arial}
.report-print-card{break-inside:avoid}.report-table{width:100%;border-collapse:collapse}.report-table th,.report-table td{border:1px solid #ddd;padding:7px;text-align:left}.report-table th{font-weight:800}.pie-wrap{display:flex;align-items:center;gap:20px}.pie-chart{width:180px;height:180px;border-radius:50%;background:conic-gradient(#b91c1c 0deg 120deg,#e11d48 120deg 240deg,#fecdd3 240deg 360deg);flex:none}.legend-item{display:flex;gap:8px;align-items:center;margin:7px 0}.legend-dot{width:11px;height:11px;border-radius:50%;display:inline-block}
@media print{body{background:#fff!important}.no-print,.topbar,.sidebar,.page-head.no-print,.footer{display:none!important}.spine-sheet,.barcode-sheet,.member-sheet{padding:0;background:#fff;gap:4mm}.spine-label,.barcode-label,.member-card{box-shadow:none}.spine-sheet,.barcode-sheet,.member-sheet{display:flex} @page{margin:8mm}}

/* ArinnLibrary v5 visual system */
:root{--bg:#FDE2E7;--card:#fffafb;--soft:#fde2e7;--ruby:#9f1239;--ruby2:#be123c;--ruby3:#fb7185}
body{background:var(--bg)}
.sidebar{background:linear-gradient(180deg,#7f1234 0%,#9f1239 45%,#881337 100%);border-right:0;color:#fff;overflow:hidden}
.sidebar:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 5%,rgba(255,255,255,.08),transparent 28%),radial-gradient(circle at 80% 45%,rgba(255,255,255,.05),transparent 32%);pointer-events:none}
.sidebar>*{position:relative;z-index:1}.brand b{color:#fff}.brand span{color:#fecdd3}.side-label{color:#fecdd3}.nav-group-title{font-size:9px;letter-spacing:1px;font-weight:900;color:#ffe4e6;padding:8px 13px 4px;display:flex;align-items:center;gap:8px}.nav-group-title i{font-size:9px}.nav-link{color:#ffe4e6}.nav-link:hover{background:rgba(255,255,255,.12);color:#fff}.nav-link.active{background:#FDE2E7;color:var(--ruby);box-shadow:0 7px 18px rgba(0,0,0,.08)}.nav-link.nav-sub{margin-left:8px;padding-top:9px;padding-bottom:9px;font-size:12px}.mini-card{background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.08)}.mini-card small{color:#fecdd3}.topbar{background:rgba(255,250,251,.9)}.content-wrap{background:transparent}.crown-motif{position:absolute;font-family:Georgia,serif;pointer-events:none;line-height:1}.crown-motif-sidebar{right:-8px;top:42px;font-size:110px;color:rgba(255,255,255,.055);transform:rotate(-8deg)}.crown-motif-login{right:-20px;top:-25px;font-size:240px;color:rgba(255,255,255,.08);transform:rotate(-8deg)}
.login-page{background:var(--bg)}.login-art{background:linear-gradient(145deg,#70132f,#9f1239 55%,#be123c)}.login-box{background:#FDE2E7}.login-form{background:rgba(255,255,255,.72);padding:28px;border:1px solid rgba(159,18,57,.08);border-radius:24px;box-shadow:0 18px 45px rgba(159,18,57,.08)}.hint{background:#fff0f3}.login-form .btn-primary{background:var(--ruby)}
.report-link{font-size:12px}.report-link i{font-size:11px}.report-section-title{font:800 13px Manrope;color:var(--ruby)}
.chart-card{min-height:310px}.collection-chart{display:flex;gap:24px;align-items:center;flex-wrap:wrap}.donut-chart{width:190px;height:190px;border-radius:50%;position:relative;flex:none}.donut-chart:after{content:"";position:absolute;inset:48px;background:var(--card);border-radius:50%}.chart-legend{display:flex;flex-direction:column;gap:9px}.chart-legend .legend-item{display:grid;grid-template-columns:12px 1fr auto;gap:8px;align-items:center;font-size:11px}.legend-dot{width:11px;height:11px;border-radius:50%;display:inline-block}.report-chart-print{break-inside:avoid}
@media print{body{background:#fff!important}.report-chart-print{break-inside:avoid}.donut-chart:after{background:#fff}.sidebar,.topbar,.footer,.no-print{display:none!important}.main-content{margin-left:0}.content-wrap{padding:0}.report-paper{max-width:none}.report-table{font-size:9pt}.bar-fill{background:#333!important}.pie-chart,.donut-chart{-webkit-print-color-adjust:exact;print-color-adjust:exact}}

/* ArinnLibrary v8 — sidebar refinement based on v4 layout, with the new menu structure */
:root{--bg:#FDE2E7;--card:#fffafb;--soft:#fde2e7;--ruby:#9f1239;--ruby2:#be123c;--ruby3:#fb7185}
html,body{background:#FDE2E7}
body.dark{--bg:#0f172a;--card:#111c2e;--soft:#341321}
.sidebar{width:250px;padding:18px 13px 14px;background:linear-gradient(180deg,#7f1234 0%,#9f1239 48%,#881337 100%);border-right:0;overflow:hidden}
.sidebar-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:0 2px 12px 0;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.28) transparent}
.sidebar-scroll::-webkit-scrollbar{width:5px}.sidebar-scroll::-webkit-scrollbar-track{background:transparent}.sidebar-scroll::-webkit-scrollbar-thumb{background:rgba(255,255,255,.25);border-radius:20px}.sidebar-scroll::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.42)}
.brand{padding:3px 11px 17px;margin-bottom:2px;border-bottom:1px solid rgba(255,255,255,.09)}
.brand-mark{width:38px;height:38px;border-radius:11px;background:rgba(255,255,255,.13);box-shadow:none}.brand b{font-size:20px}.brand span{font-size:8px}
.side-label{font-size:9px;color:#ffd7df;letter-spacing:1.3px;padding:16px 11px 7px}
.nav-group{margin-bottom:4px}.nav-group-title{font-size:10px;letter-spacing:.2px;font-weight:800;color:#fff;padding:8px 11px 5px;display:flex;align-items:center;gap:9px;text-transform:none}.nav-group-title i{font-size:10px;width:18px;text-align:center;color:#fecdd3}
.nav-link{gap:10px;padding:9px 11px;margin:2px 0;border-radius:9px;color:#ffe7eb;font-size:12px;font-weight:600;min-height:36px;line-height:1.25}.nav-link i{width:18px;min-width:18px;font-size:11px}.nav-link span{white-space:normal}
.nav-link.nav-sub{margin-left:13px;padding-left:10px;font-size:11.5px;min-height:34px;position:relative}.nav-link.nav-sub:before{content:'';position:absolute;left:-5px;top:0;bottom:0;width:1px;background:rgba(255,255,255,.13)}
.nav-link:hover{background:rgba(255,255,255,.105);color:#fff;transform:translateX(1px)}.nav-link.active{background:#FDE2E7;color:var(--ruby);box-shadow:0 6px 16px rgba(40,4,16,.16)}.nav-link.active i{color:var(--ruby)}
.report-link{font-size:11.5px}.report-link i{font-size:10.5px}
.sidebar-bottom{margin-top:9px;padding-top:9px;border-top:1px solid rgba(255,255,255,.09)}.mini-card{padding:10px;border-radius:11px;background:rgba(255,255,255,.09);color:#fff;border:1px solid rgba(255,255,255,.08)}.mini-card i{font-size:13px}.mini-card b{font-size:10px}.mini-card small{font-size:8px}
.main-content{margin-left:250px;background:#FDE2E7;min-height:100vh}.content-wrap{background:transparent}.topbar{background:rgba(253,226,231,.93)}
.login-page{background:#FDE2E7}.login-box{background:#FDE2E7}.login-form{background:rgba(255,255,255,.56);border:1px solid rgba(159,18,57,.10);backdrop-filter:blur(8px)}
@media(max-width:800px){.sidebar{width:270px;padding-top:15px}.sidebar-scroll{padding-right:4px}.main-content{margin-left:0}.topbar{background:rgba(253,226,231,.96)}}
@media(min-width:801px){.sidebar{height:100vh}.sidebar-scroll{overscroll-behavior:contain}}

/* ArinnLibrary v9 — guaranteed independent sidebar scrolling */
.sidebar{height:100vh;min-height:100vh;overflow:hidden;position:fixed;display:block;padding:18px 13px 14px}
.sidebar .brand{height:59px;min-height:59px;margin:0 0 0;padding:3px 11px 17px}
.sidebar .sidebar-scroll{position:absolute;left:13px;right:13px;top:78px;bottom:76px;height:auto;min-height:0;max-height:none;overflow-y:auto;overflow-x:hidden;padding:0 4px 18px 0;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.sidebar .sidebar-scroll::-webkit-scrollbar{width:7px}
.sidebar .sidebar-scroll::-webkit-scrollbar-track{background:rgba(255,255,255,.06);border-radius:10px}
.sidebar .sidebar-scroll::-webkit-scrollbar-thumb{background:rgba(255,255,255,.38);border-radius:10px;border:1px solid rgba(255,255,255,.08)}
.sidebar .sidebar-scroll::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.62)}
.sidebar .sidebar-scroll{scrollbar-width:auto;scrollbar-color:rgba(255,255,255,.38) rgba(255,255,255,.06)}
.sidebar .sidebar-bottom{position:absolute;left:13px;right:13px;bottom:14px;height:53px;margin:0;padding:7px 0 0;background:linear-gradient(180deg,rgba(127,18,52,.05),rgba(127,18,52,.98) 22%)}
.sidebar .sidebar-bottom .mini-card{height:45px}
@media(max-width:800px){.sidebar{height:100dvh;min-height:100dvh}.sidebar .sidebar-scroll{top:72px;bottom:74px}}
.register-link {
    display: block;
    margin-top: 14px;
    text-align: center;
    color: #9B1C31;
    text-decoration: none;
    font-size: 13px;
    font-weight: 600;
}

.register-link:hover {
    color: #7f1628;
    text-decoration: underline;
}