@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-ext-wght-normal-D4X5GqEv.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-wght-normal-CY6AOgYE.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-vietnamese-wght-normal-U01xdrZh.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-ext-wght-normal-CXYtwYOx.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-wght-normal-BzFMHfZw.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color:#17324d;font-synthesis:none;text-rendering:optimizelegibility;--ink:#17324d;--muted:#5d7083;--blue:#356fe6;--blue-dark:#2457c5;--blue-soft:#eaf2ff;--green:#15956d;--green-dark:#087a55;--green-soft:#e7f7ef;--orange:#ea7a32;--orange-dark:#ad4d14;--orange-soft:#fff0df;--yellow:#f6c851;--yellow-soft:#fff8d9;--purple:#7b53d6;--purple-dark:#633bb9;--purple-soft:#f1eaff;--red:#b43d36;--red-soft:#fdecea;--white:#fff;--border:#dce7ef;--shadow-sm:0 5px 16px #22466714;--shadow:0 16px 45px #2246671f;background:#f7fbff;font-family:Nunito Variable,Trebuchet MS,system-ui,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:radial-gradient(circle at 5% 5%,#5bb5ff21 0 130px,#0000 131px),radial-gradient(circle at 95% 16%,#f6c85129 0 110px,#0000 111px),#f7fbff;min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a,button{color:inherit}img{max-width:100%;display:block}img[hidden]{display:none}:focus-visible{outline-offset:3px;outline:4px solid #356fe659}.sr-only{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.skip-link{z-index:200;background:var(--ink);color:#fff;border-radius:12px;padding:12px 18px;font-weight:800;transition:top .2s;position:fixed;top:-80px;left:16px}.skip-link:focus{top:16px}.app-shell{min-height:100vh}.main-content{min-height:calc(100vh - 84px)}.site-header{z-index:50;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffffed;border-bottom:1px solid #dce7efe6;position:sticky;top:0}.header-inner{align-items:center;gap:28px;width:min(1180px,100% - 40px);min-height:84px;margin:0 auto;display:flex}.brand{flex-shrink:0;align-items:center;gap:11px;line-height:1.05;text-decoration:none;display:inline-flex}.brand-mark{color:#fff;background:linear-gradient(145deg, var(--blue), #5a92ef);border-radius:15px 15px 15px 5px;place-items:center;width:46px;height:46px;display:grid;transform:rotate(-2deg);box-shadow:0 6px #cbdcff}.brand strong{letter-spacing:-.02em;font-size:19px;font-weight:900;display:block}.brand small{color:var(--muted);letter-spacing:.04em;margin-top:3px;font-size:12px;font-weight:750;display:block}.desktop-nav{justify-content:center;align-items:center;gap:5px;margin:0 auto;display:flex}.nav-link{color:#53687d;border-radius:13px;align-items:center;gap:7px;min-height:48px;padding:10px 13px;font-weight:780;text-decoration:none;transition:background .18s,color .18s,transform .18s;display:inline-flex}.nav-link:hover{color:var(--ink);background:#f0f5f9;transform:translateY(-1px)}.nav-link.active{color:var(--blue-dark);background:var(--blue-soft)}.teacher-link{background:var(--purple-soft);min-height:48px;color:var(--purple-dark);border:1px solid #decff8;border-radius:14px;flex-shrink:0;align-items:center;gap:8px;padding:10px 15px;font-size:14px;font-weight:850;text-decoration:none;display:inline-flex}.teacher-link:hover{background:#e8dcff}.mobile-nav{display:none}.pwa-notices{z-index:80;left:16px;right:16px;bottom:max(16px, env(safe-area-inset-bottom));pointer-events:none;gap:10px;display:grid;position:fixed}.pwa-notice{border:1px solid var(--border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);pointer-events:auto;background:#fffffff7;border-radius:18px;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:12px;width:min(720px,100%);margin-left:auto;padding:12px;display:grid;box-shadow:0 18px 55px #19344d33}.pwa-notice-icon{width:44px;height:44px;color:var(--blue-dark);background:var(--blue-soft);border-radius:12px;place-items:center;display:grid}.pwa-notice-copy{flex-direction:column;min-width:0;display:flex}.pwa-notice-copy strong{font-weight:950}.pwa-notice-copy span{color:var(--muted);font-size:13px;line-height:1.3}.pwa-dismiss{width:44px;height:44px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:12px;place-items:center;display:grid}.pwa-dismiss:hover{color:var(--ink);background:#edf2f6}.page{padding:42px 0 80px}.section-wrap{width:min(1180px,100% - 40px);margin-left:auto;margin-right:auto}.section-wrap.narrow{width:min(760px,100% - 40px)}.section-wrap.compact{width:min(1020px,100% - 40px)}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.045em;margin-bottom:15px;font-size:clamp(36px,5vw,62px);font-weight:950;line-height:1.02}h2{letter-spacing:-.025em}p{color:var(--muted);line-height:1.55}.eyebrow,.section-kicker{width:fit-content;color:var(--blue-dark);letter-spacing:.07em;text-transform:uppercase;align-items:center;gap:7px;margin-bottom:14px;font-size:14px;font-weight:900;display:inline-flex}.eyebrow{background:var(--blue-soft);border-radius:999px;padding:8px 12px}.eyebrow.green{color:var(--green-dark);background:var(--green-soft)}.eyebrow.orange{color:var(--orange-dark);background:var(--orange-soft)}.eyebrow.blue{color:var(--blue-dark);background:var(--blue-soft)}.eyebrow.purple{color:var(--purple-dark);background:var(--purple-soft)}.section-kicker.orange-text,.orange-text{color:var(--orange-dark)}.button{cursor:pointer;border:0;border-radius:14px;justify-content:center;align-items:center;gap:9px;min-height:50px;padding:12px 19px;font-weight:900;line-height:1.2;text-decoration:none;transition:transform .16s,box-shadow .16s,background .16s;display:inline-flex}.button:not(:disabled):not(.disabled):hover{transform:translateY(-2px)}.button.primary{color:#fff;background:var(--blue);box-shadow:0 6px #bed1fb}.button.primary:hover{background:var(--blue-dark);box-shadow:0 8px #bed1fb}.button.secondary{color:var(--ink);background:#edf2f6}.button.secondary:hover{background:#e2ebf1}.button.return-button,.return-button{color:#fff;background:var(--orange-dark);box-shadow:0 6px #f6cfb6}.button.return-button:hover{background:#8f3807}.button.danger{color:#fff;background:var(--red)}.button.ghost{border:1px solid var(--border);background:0 0}.button.danger.ghost{color:var(--red);background:var(--red-soft);border-color:#efc3bf}.button.teacher-button{color:#fff;background:var(--purple);box-shadow:0 6px #d8c9f5}.button.teacher-button:hover{background:var(--purple-dark)}.button.teacher-logout{color:var(--purple-dark);background:var(--purple-soft);border:1px solid #ddcff4}.button.small{min-height:42px;padding:9px 12px;font-size:13px}.button.full{width:100%}.button.jumbo{min-height:64px;padding:17px 24px;font-size:18px}.button:disabled,.button.disabled{color:#82909c;box-shadow:none;cursor:not-allowed;background:#dce4e9}.hero{grid-template-columns:minmax(0,.88fr) minmax(430px,1.12fr);align-items:center;gap:58px;min-height:470px;display:grid}.hero-copy p{max-width:570px;margin-bottom:23px;font-size:20px}.hero-visual{position:relative}.hero-visual:before{content:"";z-index:-1;background:linear-gradient(135deg,#c9e9ff,#fff2c9);border-radius:38px;position:absolute;inset:-14px;transform:rotate(2deg)}.hero-visual img{aspect-ratio:3/2;object-fit:cover;width:100%;box-shadow:var(--shadow);border:6px solid #fff;border-radius:30px}.floating-note{z-index:2;background:var(--yellow-soft);box-shadow:var(--shadow-sm);border:3px solid #fff;border-radius:14px;padding:10px 14px;font-weight:900;position:absolute;transform:rotate(-4deg)}.note-one{top:-22px;left:8%}.note-two{background:var(--green-soft);bottom:20px;right:-18px;transform:rotate(5deg)}.reassurance{color:var(--green-dark);background:#fffc;border-radius:13px;align-items:center;gap:9px;padding:10px 13px;font-size:14px;font-weight:800;display:inline-flex}.reassurance svg{width:21px}.home-actions{padding-top:40px}.section-heading.centered{text-align:center}.section-heading.centered .section-kicker{margin-left:auto;margin-right:auto}.section-heading h2{margin-bottom:25px;font-size:34px}.action-grid{grid-template-columns:repeat(3,1fr);gap:19px;display:grid}.action-card{min-height:235px;box-shadow:var(--shadow-sm);border:2px solid #0000;border-radius:25px;flex-direction:column;align-items:flex-start;padding:25px;text-decoration:none;transition:transform .2s,box-shadow .2s;display:flex;position:relative;overflow:hidden}.action-card:after{content:"";background:#ffffff8c;border-radius:50%;width:120px;height:120px;position:absolute;bottom:-50px;right:-38px}.action-card:hover{box-shadow:var(--shadow);transform:translateY(-6px)}.action-card.borrow{background:var(--blue-soft);border-color:#c7dafc}.action-card.return{background:var(--orange-soft);border-color:#f5d5b5}.action-card.catalogue{background:var(--green-soft);border-color:#bfe8d5}.action-icon{color:#fff;border-radius:18px;place-items:center;width:59px;height:59px;margin-bottom:21px;display:grid}.action-icon svg{width:31px;height:31px}.borrow .action-icon{background:var(--blue);box-shadow:0 5px #bed1fb}.return .action-icon{background:var(--orange);box-shadow:0 5px #f2c8a9}.catalogue .action-icon{background:var(--green);box-shadow:0 5px #afe0cb}.action-text{flex-direction:column;gap:4px;display:flex}.action-text small{text-transform:uppercase;letter-spacing:.07em;opacity:.76;font-size:12px;font-weight:900}.action-text strong{letter-spacing:-.02em;font-size:23px}.action-text>span{color:var(--muted);line-height:1.35}.action-arrow{z-index:1;background:#fff;border-radius:50%;place-items:center;width:40px;height:40px;display:grid;position:absolute;top:24px;right:21px}.page-intro{justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:29px;display:flex}.page-intro.narrow{display:block}.page-intro h1{font-size:clamp(36px,4vw,52px)}.page-intro p{margin-bottom:0;font-size:18px}.back-link{width:fit-content;min-height:45px;color:var(--muted);align-items:center;gap:7px;margin-bottom:24px;font-weight:850;text-decoration:none;display:flex}.back-link:hover{color:var(--blue-dark)}.catalogue-count{text-align:center;background:var(--green-soft);min-width:116px;color:var(--green-dark);border:1px solid #cde7dc;border-radius:18px;flex-direction:column;padding:15px 17px;display:flex}.catalogue-count strong{font-size:28px;line-height:1}.catalogue-count span{margin-top:5px;font-size:12px;font-weight:850}.catalogue-tools{border:1px solid var(--border);box-shadow:var(--shadow-sm);background:#fff;border-radius:22px;padding:19px}.search-field{background:#fff;border:2px solid #cadced;border-radius:15px;align-items:center;gap:11px;min-height:58px;padding:0 16px;display:flex}.search-field:focus-within{border-color:var(--blue);box-shadow:0 0 0 4px #356fe61a}.search-field svg{color:#70869a;flex:none}.search-field input{width:100%;min-width:0;height:52px;color:var(--ink);background:0 0;border:0;outline:none;font-size:17px;font-weight:700}.search-field input::placeholder{color:#8999a8}.search-field button{cursor:pointer;background:#edf2f6;border:0;border-radius:50%;width:38px;height:38px;font-size:24px}.filter-row{align-items:center;gap:12px;margin-top:15px;display:flex}.genre-pills{flex-wrap:wrap;flex:1;gap:8px;display:flex}.filter-pill{border:1px solid var(--border);min-height:44px;color:var(--muted);cursor:pointer;background:#fff;border-radius:999px;padding:9px 15px;font-size:14px;font-weight:850}.filter-pill:hover{background:#f1f6f9}.filter-pill.active{border-color:var(--green);background:var(--green-soft);color:var(--green-dark)}.select-control{border:1px solid var(--border);background:#fff;border-radius:12px;align-items:center;gap:6px;min-height:46px;padding:0 10px;display:inline-flex}.select-control select{height:42px;color:var(--ink);background:0 0;border:0;outline:0;font-weight:750}.available-toggle{background:var(--yellow-soft);cursor:pointer;white-space:nowrap;border-radius:12px;align-items:center;gap:8px;min-height:46px;padding:8px 11px;font-size:13px;font-weight:850;display:inline-flex}.available-toggle input{width:19px;height:19px;accent-color:var(--green)}.catalogue-results{padding-top:25px}.book-grid{grid-template-columns:repeat(4,1fr);gap:20px;display:grid}.book-card{border:1px solid var(--border);min-width:0;box-shadow:var(--shadow-sm);background:#fff;border-radius:22px;flex-direction:column;transition:transform .2s,box-shadow .2s;display:flex;overflow:hidden}.book-card:hover{box-shadow:var(--shadow);transform:translateY(-5px)}.book-cover{aspect-ratio:4/5;background:#eaf0f5;width:100%;position:relative;overflow:hidden}.book-cover>img{object-fit:cover;width:100%;height:100%}.cover-fallback{color:#fff;text-align:center;background:linear-gradient(145deg, color-mix(in srgb, var(--cover-color) 82%, white), var(--cover-color));flex-direction:column;justify-content:center;align-items:center;gap:11px;width:100%;height:100%;padding:24px 18px;display:flex}.cover-fallback:before,.cover-fallback:after{content:"";border:2px solid #ffffff59;border-radius:50%;position:absolute}.cover-fallback:before{width:130px;height:130px;top:-58px;right:-52px}.cover-fallback:after{width:70px;height:70px;bottom:-20px;left:-25px}.cover-fallback svg{opacity:.85;width:36px;height:36px}.cover-fallback strong{z-index:1;-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:18px;line-height:1.15;display:-webkit-box;position:relative;overflow:hidden}.cover-fallback small{z-index:1;opacity:.86;font-weight:750;position:relative}.book-card-body{flex-direction:column;flex:1;padding:17px;display:flex}.tag-row{flex-wrap:wrap;gap:6px;margin-bottom:11px;display:flex}.genre-tag,.level-tag{border-radius:7px;padding:5px 8px;font-size:11px;font-weight:900}.genre-tag{color:var(--green-dark);background:var(--green-soft)}.genre-roman{color:#2558bd;background:#e7efff}.genre-bd{color:#6e3db5;background:#f0e8ff}.genre-documentaire{color:var(--green-dark);background:var(--green-soft)}.genre-album{color:#ad4d14;background:var(--orange-soft)}.level-tag{color:#725415;background:var(--yellow-soft)}.book-card h2{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:5px;font-size:19px;line-height:1.2;display:-webkit-box;overflow:hidden}.book-author{margin-bottom:12px;font-size:14px}.availability{align-items:center;gap:6px;margin:auto 0 14px;font-size:14px;font-weight:900;display:flex}.availability svg{width:19px;height:19px}.availability.available{color:var(--green-dark)}.availability.unavailable{color:var(--red)}.book-card .button{text-align:center;min-height:48px;padding:10px;font-size:13px}.flow-page{background:linear-gradient(#eaf2ff85,#0000 430px)}.return-flow{background:linear-gradient(#fff0df85,#0000 430px)}.flow-form{flex-direction:column;gap:18px;min-width:0;display:flex}.borrow-flow-form{width:min(920px,100% - 40px)}.form-step{border:1px solid var(--border);min-width:0;box-shadow:var(--shadow-sm);background:#fff;border-radius:22px;margin:0;padding:23px}.form-step legend,.fake-legend{color:var(--ink);align-items:center;gap:10px;padding:0 7px;font-size:20px;font-weight:950;display:flex}.fake-legend{margin:-2px 0 20px;padding:0}.step-number{color:#fff;background:var(--blue);border-radius:12px;place-items:center;width:36px;height:36px;font-size:16px;display:inline-grid;box-shadow:0 4px #c2d4fa}.step-number.orange{background:var(--orange);box-shadow:0 4px #f2c8a9}.field-label{align-items:center;gap:8px;margin:11px 0 8px;font-size:15px;font-weight:900;display:flex}.field-label svg{width:20px;color:var(--blue)}.large-select,.text-input,.date-summary input[type=date]{width:100%;min-height:58px;color:var(--ink);background:#fff;border:2px solid #c8d9ee;border-radius:14px;outline:none;padding:0 15px;font-size:17px;font-weight:750}.large-select:focus,.text-input:focus,.date-summary input:focus{border-color:var(--blue);box-shadow:0 0 0 4px #356fe61a}.large-select.orange{border-color:#f0c6a6}.large-select.orange:focus{border-color:var(--orange);box-shadow:0 0 0 4px #ea7a321f}.selected-info{background:var(--green-soft);color:var(--green-dark);border-radius:12px;align-items:center;gap:8px;margin-top:12px;padding:11px 13px;display:flex}.selected-info svg{width:20px}.chosen-books-panel{background:linear-gradient(145deg,#f6faff,#edf5ff);border:1px solid #c9ddfb;border-radius:18px;margin-top:15px;padding:17px}.chosen-books-heading,.available-books-heading{justify-content:space-between;align-items:center;gap:14px;display:flex}.chosen-books-heading>div,.available-books-heading>div{flex-direction:column;gap:2px;display:flex}.chosen-books-heading strong,.available-books-heading strong{font-size:17px}.chosen-books-heading>div span,.available-books-heading>div span{color:var(--muted);font-size:12px;font-weight:750}.chosen-count{color:#fff;background:var(--blue);border-radius:13px;flex:none;place-items:center;width:38px;height:38px;font-size:18px;font-weight:950;display:grid;box-shadow:0 4px #c8d9fb}.chosen-books-empty{min-height:80px;color:var(--muted);text-align:center;background:#ffffffa6;border:2px dashed #c7d9ee;border-radius:14px;justify-content:center;align-items:center;gap:10px;margin-top:14px;padding:16px;font-weight:800;display:flex}.chosen-books-empty svg{width:24px;color:var(--blue)}.selected-book-list{grid-template-columns:repeat(auto-fit,minmax(min(330px,100%),1fr));gap:10px;margin-top:14px;display:grid}.selected-book-row{background:#fff;border:1px solid #bad2f7;border-radius:15px;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:11px;min-height:92px;padding:9px;display:grid;box-shadow:0 5px 14px #265ba70f}.selected-book-row .book-cover{aspect-ratio:auto;border-radius:9px;width:58px;height:74px}.selected-book-row .cover-fallback{gap:3px;padding:6px 3px}.selected-book-row .cover-fallback svg{width:16px;height:16px}.selected-book-row .cover-fallback strong{-webkit-line-clamp:3;font-size:8px}.selected-book-row .cover-fallback small{display:none}.selected-book-row>span:nth-child(2){flex-direction:column;gap:2px;min-width:0;display:flex}.selected-book-row strong{-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.2;display:-webkit-box;overflow:hidden}.selected-book-row small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:750;overflow:hidden}.selected-book-row em{width:fit-content;color:var(--blue-dark);background:var(--blue-soft);border-radius:6px;margin-top:3px;padding:3px 6px;font-size:9px;font-style:normal;font-weight:900}.selected-book-row button{color:#b33c32;cursor:pointer;background:#ffe1de;border:0;border-radius:11px;place-items:center;width:38px;height:38px;display:grid}.selected-book-row button:hover{background:#ffd2cd}.selected-book-row button:focus-visible{outline-offset:2px;outline:4px solid #b33c3238}.selected-book-row button svg{width:20px}.available-books-heading{margin:24px 2px 10px}.available-books-heading>span{color:var(--green-dark);background:var(--green-soft);white-space:nowrap;border-radius:9px;padding:6px 9px;font-size:11px;font-weight:900}.book-search{background:#fff;min-height:56px;margin:0 0 10px}.borrow-genre-pills{overscroll-behavior-inline:contain;scrollbar-width:thin;gap:7px;width:100%;max-width:100%;margin:0 0 14px;padding-bottom:4px;display:flex;overflow-x:auto}.borrow-genre-pills button{color:#52697d;cursor:pointer;background:#f8fbfd;border:1px solid #d2e0eb;border-radius:999px;flex:none;min-height:39px;padding:8px 13px;font-size:12px;font-weight:900}.borrow-genre-pills button:hover{border-color:#9db9e9}.borrow-genre-pills button.active{border-color:var(--blue);color:#fff;background:var(--blue)}.book-choice-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;display:grid}.book-choice{min-width:0;min-height:118px;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:#fff;border:1px solid #d4e2ec;border-radius:17px;grid-template-columns:68px minmax(0,1fr) auto;align-items:center;gap:13px;padding:11px;transition:border .15s,box-shadow .15s,transform .15s;display:grid;position:relative;box-shadow:0 4px 12px #2246670d}.book-choice:hover{border-color:#8cb3ee;transform:translateY(-2px);box-shadow:0 9px 20px #2a5ba41c}.book-choice .book-cover{aspect-ratio:auto;border-radius:10px;width:68px;height:92px}.book-choice .cover-fallback{gap:4px;padding:7px 4px}.book-choice .cover-fallback svg{width:17px;height:17px}.book-choice .cover-fallback strong{-webkit-line-clamp:3;font-size:9px}.book-choice .cover-fallback small{display:none}.book-choice-copy{flex-direction:column;align-items:flex-start;gap:3px;min-width:0;display:flex}.book-choice-copy strong{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:15px;line-height:1.15;display:-webkit-box;overflow:hidden}.book-choice-copy>span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.book-choice-copy small{color:#52687b;font-size:10px;font-weight:800}.book-choice-add{background:var(--blue-soft);white-space:nowrap;border-radius:9px;align-items:center;gap:4px;padding:7px 9px;font-weight:950;display:inline-flex;color:var(--blue-dark)!important;font-size:10px!important}.book-choice-add svg{width:13px;height:13px}.selection-rule,.selection-limit-warning{text-align:center;border-radius:13px;justify-content:center;align-items:center;gap:9px;margin-top:16px;padding:13px 15px;line-height:1.35;display:flex}.selection-rule{color:#a84d05;background:#fffbea;border:2px solid #f2be24}.selection-limit-warning{color:#c94b14;background:#fff5e8;border:1px solid #ffc48f;margin-bottom:16px;font-size:13px;font-weight:850}.selection-rule svg,.selection-limit-warning svg{flex:none;width:20px;height:20px}.show-all-books{min-height:48px;color:var(--blue-dark);background:var(--blue-soft);cursor:pointer;border:0;border-radius:12px;align-items:center;gap:6px;margin:13px auto 0;padding:10px 18px;font-weight:900;display:flex}.show-all-books:hover{background:#dceaff}.show-all-books svg{width:18px}.mini-empty{color:var(--muted);text-align:center;background:#f5f8fa;border-radius:14px;padding:24px;font-weight:800}.date-summary{grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;margin-top:12px;display:grid}.date-summary>div,.date-summary label{flex-direction:column;gap:5px;min-width:0;display:flex}.date-summary small,.date-summary label>span{color:var(--muted);font-size:12px;font-weight:850}.date-summary strong{line-height:1.25}.date-summary>svg{color:var(--blue)}.date-summary input[type=date]{min-height:50px;padding:8px 10px}.return-list{flex-direction:column;gap:12px;display:flex}.return-card{background:#fffaf6;border:2px solid #f0ddcd;border-radius:17px;grid-template-columns:80px minmax(0,1fr) auto;align-items:center;gap:15px;padding:13px;display:grid}.return-card .book-cover{aspect-ratio:auto;border-radius:10px;width:80px;height:100px}.return-card .cover-fallback{gap:5px;padding:8px}.return-card .cover-fallback strong{font-size:11px}.return-card .cover-fallback small,.return-card .cover-fallback svg{display:none}.return-card h2{margin-bottom:3px;font-size:18px}.return-card-copy>p{margin-bottom:8px;font-size:13px}.return-card .button{white-space:nowrap}.due-chip{width:fit-content;color:var(--green-dark);align-items:center;gap:5px;font-size:12px;font-weight:850;display:flex}.due-chip svg{width:17px}.due-chip.overdue{color:#993a32;background:var(--red-soft);border-radius:8px;padding:6px 8px}.alert{border-radius:13px;padding:14px 16px;font-weight:800;line-height:1.4}.alert.error{background:var(--red-soft);color:#8f342e;border:1px solid #edb9b5}.alert.success{background:var(--green-soft);color:var(--green-dark);border:1px solid #b9e3cf}.alert button{color:inherit;cursor:pointer;background:0 0;border:0;margin-left:8px;font-weight:950;text-decoration:underline}.loading-state{min-height:150px;color:var(--muted);justify-content:center;align-items:center;gap:10px;font-weight:850;display:flex}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;background:#ffffffa6;border:2px dashed #d2dfe8;border-radius:20px;width:100%;padding:38px 20px}.empty-icon{width:62px;height:62px;color:var(--green-dark);background:#edf3f7;border-radius:20px;place-items:center;margin:0 auto 14px;display:grid}.empty-icon svg{width:30px}.empty-state h2{margin-bottom:5px}.empty-state p{margin-bottom:0}.success-panel{max-width:650px;box-shadow:var(--shadow);text-align:center;background:#fff;border:1px solid #bee3d2;border-radius:30px;padding:46px 30px}.success-book-stack{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin:22px auto 17px;display:flex}.success-book-stack .success-cover{width:105px;height:140px;margin:0}.success-book-titles{flex-direction:column;gap:5px;max-width:480px;margin:0 auto 18px;padding:0;font-size:14px;font-weight:800;list-style:none;display:flex}.success-burst{color:#fff;background:var(--green);border-radius:28px;place-items:center;width:82px;height:82px;margin:0 auto 22px;display:grid;transform:rotate(-4deg);box-shadow:0 8px #b7e0ce}.success-burst.orange{background:var(--orange);box-shadow:0 8px #f2c9ac}.success-burst svg{width:41px;height:41px}.success-panel h1{font-size:clamp(38px,7vw,58px)}.success-panel>p{font-size:19px}.success-cover{width:150px;height:190px;box-shadow:var(--shadow);aspect-ratio:auto;border:5px solid #fff;border-radius:17px;margin:22px auto}.success-cover .cover-fallback{padding:15px 10px}.success-cover .cover-fallback strong{font-size:15px}.due-reminder{background:var(--yellow-soft);color:#785b16;border-radius:14px;justify-content:center;align-items:center;gap:9px;max-width:510px;margin:21px auto;padding:14px;display:flex}.success-actions{justify-content:center;gap:11px;margin-top:23px;display:flex}.modal{width:min(510px,100% - 28px);color:var(--ink);background:#fff;border:0;border-radius:24px;padding:25px;box-shadow:0 25px 80px #142d4647}.modal::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#192a3a94}.modal-head{justify-content:space-between;align-items:flex-start;display:flex}.modal-icon{background:var(--yellow-soft);color:#896817;border-radius:15px;place-items:center;width:48px;height:48px;display:grid}.modal-icon.danger{color:var(--red);background:var(--red-soft)}.icon-button{cursor:pointer;background:#eef3f6;border:0;border-radius:14px;place-items:center;width:48px;height:48px;display:grid}.modal h2{margin:19px 0 8px;font-size:28px}.modal p{margin-bottom:23px;font-size:16px}.modal-actions{justify-content:flex-end;gap:10px;display:flex}.teacher-page{background:linear-gradient(#f1eaff80,#0000 480px)}.teacher-login-page{min-height:calc(100vh - 84px)}.teacher-login{width:min(530px,100% - 40px);box-shadow:var(--shadow);text-align:center;background:#fff;border:1px solid #dfd1f6;border-radius:26px;margin:25px auto;padding:33px}.teacher-login-icon{background:var(--purple-soft);width:75px;height:75px;color:var(--purple-dark);border-radius:24px;place-items:center;margin:0 auto 18px;display:grid}.teacher-login-icon svg{width:36px;height:36px}.teacher-login h1{font-size:39px}.teacher-login p{max-width:410px;margin-left:auto;margin-right:auto}.pin-input{text-align:center;letter-spacing:.28em;border:2px solid #d5c5f0;border-radius:15px;outline:none;width:100%;height:64px;margin:8px 0 14px;font-size:28px;font-weight:900}.pin-input:focus{border-color:var(--purple);box-shadow:0 0 0 4px #7b53d61f}.teacher-login-form{text-align:left;margin-top:24px}.teacher-login-form .button{margin-top:14px}.large-input{width:100%;min-height:58px;color:var(--ink);background:#fff;border:2px solid #d5c5f0;border-radius:14px;outline:none;padding:0 15px;font-size:17px;font-weight:750}.large-input:focus{border-color:var(--purple);box-shadow:0 0 0 4px #7b53d61c}.teacher-pin-input{text-align:center;letter-spacing:.18em;height:64px;font-size:24px;font-weight:950}.teacher-shell{width:min(1180px,100% - 40px);margin:0 auto}.teacher-header{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px;display:flex}.teacher-header h1{font-size:45px}.teacher-actions,.teacher-header-actions{flex-wrap:wrap;justify-content:flex-end;gap:9px;display:flex}.teacher-tabs{background:#ffffffe6;border:1px solid #dfd5ef;border-radius:17px;gap:6px;margin-bottom:23px;padding:7px;display:flex;overflow-x:auto}.teacher-tabs>[role=tablist]{gap:6px;width:100%;display:flex}.teacher-tab{min-height:48px;color:var(--muted);white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-weight:900;display:inline-flex}.teacher-tab.active{color:var(--purple-dark);background:var(--purple-soft)}.teacher-content{flex-direction:column;gap:20px;display:flex}.teacher-messages:empty{display:none}.teacher-messages .alert{align-items:center;gap:9px;margin-bottom:18px;display:flex}.teacher-overview{flex-direction:column;gap:20px;display:flex}.admin-card,.admin-section{border:1px solid var(--border);min-width:0;box-shadow:var(--shadow-sm);background:#fff;border-radius:21px;padding:22px}.admin-card-heading{align-items:center;gap:12px;margin-bottom:17px;display:flex}.admin-card-heading h2{margin:0;font-size:21px}.admin-heading-icon{width:43px;height:43px;color:var(--purple-dark);background:var(--purple-soft);border-radius:13px;flex:none;place-items:center;display:grid}.admin-heading-icon svg{width:22px}.admin-heading-icon.warning{color:var(--orange-dark);background:var(--orange-soft)}.admin-section-heading{justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px;display:flex}.admin-section-heading>div:first-child:not(:only-child){min-width:0}.admin-section-heading h2{margin-bottom:5px;font-size:26px}.admin-section-heading p{margin-bottom:0}.teacher-overdue-card .admin-section-heading>div{align-items:center;gap:12px;display:flex}.teacher-overdue-card .admin-section-heading h2{margin-bottom:2px}.teacher-overdue-card .admin-section-heading p{margin-bottom:0}.teacher-overdue-card.has-overdue{background:snow;border-color:#f1c3bf}.teacher-stat-grid{grid-template-columns:repeat(5,1fr);gap:12px;display:grid}.teacher-stat-card{border:1px solid var(--border);min-width:0;min-height:122px;box-shadow:var(--shadow-sm);background:#fff;border-radius:18px;flex-direction:column;justify-content:space-between;gap:14px;padding:17px;display:flex}.teacher-stat-card>svg{width:28px;height:28px}.teacher-stat-card strong{font-size:31px;line-height:1;display:block}.teacher-stat-card span{color:var(--muted);margin-top:5px;font-size:12px;font-weight:850;line-height:1.25;display:block}.teacher-stat-card.blue{color:var(--blue-dark);background:linear-gradient(145deg, #fff, var(--blue-soft))}.teacher-stat-card.orange{color:var(--orange-dark);background:linear-gradient(145deg, #fff, var(--orange-soft))}.teacher-stat-card.green{color:var(--green-dark);background:linear-gradient(145deg, #fff, var(--green-soft))}.teacher-stat-card.purple{color:var(--purple-dark);background:linear-gradient(145deg, #fff, var(--purple-soft))}.teacher-stat-card.yellow{color:#82641b;background:linear-gradient(145deg, #fff, var(--yellow-soft))}.teacher-ranking-grid{grid-template-columns:repeat(2,1fr);gap:18px;display:grid}.teacher-ranking-list{flex-direction:column;gap:9px;margin:0;padding:0;list-style:none;display:flex}.teacher-ranking-list li{background:#f6f9fb;border-radius:12px;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;display:grid}.teacher-rank{color:#795b15;background:var(--yellow-soft);border-radius:9px;place-items:center;width:31px;height:31px;font-weight:950;display:grid}.teacher-rank-copy{min-width:0}.teacher-rank-copy strong,.teacher-rank-copy small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.teacher-rank-copy small{color:var(--muted)}.teacher-rank-count{color:var(--purple-dark);font-size:12px;font-weight:950}.admin-empty-copy{margin:0}.admin-segmented{background:#edf2f6;border-radius:14px;gap:4px;width:fit-content;max-width:100%;margin-bottom:18px;padding:5px;display:flex;overflow-x:auto}.admin-segmented button{min-height:45px;color:var(--muted);white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:7px;padding:8px 13px;font-weight:900;display:inline-flex}.admin-segmented button>span{text-align:center;background:#fffc;border-radius:999px;min-width:24px;padding:3px 6px;font-size:11px}.admin-segmented button.active{color:var(--purple-dark);background:#fff;box-shadow:0 2px 8px #1f364914}.admin-segmented button.warning{color:var(--red)}.admin-search{max-width:620px;min-height:52px;margin-bottom:18px}.admin-search input{height:46px}.teacher-catalogue-toolbar{background:#f8fafc;border:1px solid #e1e9ef;border-radius:16px;grid-template-columns:minmax(260px,1fr) 190px auto;align-items:end;gap:11px;margin:4px 0 7px;padding:13px;display:grid}.teacher-catalogue-toolbar .admin-search{background:#fff;min-width:0;max-width:none;margin:0}.admin-filter-field{min-width:0;color:var(--muted);flex-direction:column;gap:5px;font-size:11px;font-weight:900;display:flex}.admin-filter-field select{width:100%;min-height:48px;color:var(--ink);background:#fff;border:1px solid #ccdbe7;border-radius:12px;outline:none;padding:0 35px 0 12px;font-weight:850}.admin-filter-field select:focus{border-color:var(--purple);box-shadow:0 0 0 3px #7b53d61f}.clear-catalogue-filters{min-height:48px;color:var(--muted);cursor:pointer;white-space:nowrap;background:#eaf0f4;border:0;border-radius:12px;justify-content:center;align-items:center;gap:6px;padding:9px 12px;font-size:12px;font-weight:900;display:inline-flex}.clear-catalogue-filters:hover{color:var(--ink);background:#dfe8ee}.clear-catalogue-filters svg{width:16px}.catalogue-result-count{color:var(--muted);margin:0 2px 10px;font-size:12px;font-weight:850}.genre-page-heading{border-bottom:1px solid #e7edf2;padding-bottom:20px}.genre-total{color:var(--purple-dark);background:var(--purple-soft);white-space:nowrap;border-radius:11px;align-items:center;gap:7px;padding:9px 12px;font-size:12px;font-weight:950;display:inline-flex}.genre-total svg{width:18px}.genre-create-panel{background:linear-gradient(145deg,#faf8ff,#f3edff);border:1px solid #d9cdf2;border-radius:18px;grid-template-columns:minmax(230px,.8fr) minmax(360px,1.2fr);align-items:center;gap:16px 22px;margin:20px 0 22px;padding:18px;display:grid}.genre-create-copy{align-items:center;gap:12px;display:flex}.genre-create-copy>div{flex-direction:column;gap:3px;display:flex}.genre-create-copy strong{font-size:17px}.genre-create-copy small{color:var(--muted);font-weight:750}.genre-create-icon{color:#fff;background:var(--purple);border-radius:13px;flex:none;place-items:center;width:43px;height:43px;display:grid;box-shadow:0 4px #d3c2f2}.genre-create-icon svg{width:21px}.genre-create-panel .alert{grid-column:1/-1;margin:0}.genre-create-controls{grid-template-columns:minmax(0,1fr) auto;gap:9px;min-width:0;display:grid}.genre-create-controls label{min-width:0}.genre-create-controls input{width:100%;min-height:50px;color:var(--ink);background:#fff;border:2px solid #d5c5f0;border-radius:13px;outline:none;padding:0 14px;font-weight:800}.genre-create-controls input:focus{border-color:var(--purple);box-shadow:0 0 0 4px #7b53d61c}.genre-admin-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;display:grid}.genre-admin-card{background:#fff;border:1px solid #dfe7ed;border-radius:15px;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0;min-height:82px;padding:12px;display:grid;box-shadow:0 4px 12px #2246670d}.genre-admin-icon{width:40px;height:40px;color:var(--purple-dark);background:var(--purple-soft);border-radius:12px;place-items:center;display:grid}.genre-admin-icon svg{width:20px}.genre-admin-copy{flex-direction:column;gap:3px;min-width:0;display:flex}.genre-admin-copy strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.genre-admin-copy span{color:var(--muted);font-size:11px;font-weight:800}.genre-admin-card>button{width:36px;height:36px;color:var(--red);background:var(--red-soft);cursor:pointer;border:0;border-radius:10px;place-items:center;display:grid}.genre-admin-card>button:hover{background:#f9d9d5}.genre-admin-card>button svg{width:17px}.genre-admin-card>button span{clip:rect(0,0,0,0);width:1px;height:1px;position:absolute;overflow:hidden}.genre-in-use{color:#526777;white-space:nowrap;background:#edf2f5;border-radius:8px;align-items:center;gap:4px;padding:6px 8px;font-size:10px;font-weight:900;display:inline-flex}.genre-in-use svg{width:13px}.genre-delete-help{color:var(--muted);align-items:flex-start;gap:7px;margin:17px 2px 0;font-size:11px;font-weight:750;display:flex}.genre-delete-help svg{flex:none;width:15px}.admin-status{white-space:nowrap;border-radius:8px;align-items:center;gap:5px;width:fit-content;padding:6px 8px;font-size:11px;font-weight:950;display:inline-flex}.admin-status svg{width:15px;height:15px}.admin-status.current,.admin-status.available{color:var(--green-dark);background:var(--green-soft)}.admin-status.overdue,.admin-status.unavailable{color:#993a32;background:var(--red-soft)}.admin-status.returned{color:#536677;background:#edf2f5}.teacher-loan-table td strong,.teacher-loan-table td small{display:block}.teacher-loan-table td small{color:var(--muted)}.teacher-loan-table td>span+time{font-weight:850;display:block}.admin-book-cell{align-items:center;gap:11px;min-width:230px;display:flex}.admin-book-cover{aspect-ratio:auto;border-radius:7px;flex:none;width:48px;height:62px}.admin-book-cover .cover-fallback{gap:2px;padding:5px 3px}.admin-book-cover .cover-fallback svg,.admin-book-cover .cover-fallback small{display:none}.admin-book-cover .cover-fallback strong{font-size:7px}.admin-book-cell strong,.admin-book-cell span,.admin-book-cell small{display:block}.admin-book-cell span,.admin-book-cell small{color:var(--muted);font-size:12px}.admin-meta-pill{color:#536779;background:#edf2f5;border-radius:7px;width:fit-content;margin:2px 3px 2px 0;padding:5px 7px;font-size:11px;font-weight:850;display:inline-block}.admin-row-actions{align-items:center;gap:7px;display:flex}.admin-student-name{align-items:center;gap:9px;display:flex}.admin-avatar{width:38px;height:38px;color:var(--purple-dark);background:var(--purple-soft);border-radius:12px;place-items:center;font-weight:950;display:grid}.admin-form{padding-top:15px}.admin-form .alert{margin-bottom:14px}.admin-form-grid .admin-field.full{grid-column:1/-1}.admin-field span small{color:var(--muted);font-weight:700}.required-note{margin:13px 0;font-size:12px}.admin-modal .modal-head h2{margin:3px 0 0}.admin-modal .modal-actions{margin-top:19px}.stats-grid{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.stat-card{border:1px solid var(--border);box-shadow:var(--shadow-sm);background:#fff;border-radius:19px;align-items:center;gap:15px;padding:20px;display:flex}.stat-icon{background:var(--blue-soft);width:50px;height:50px;color:var(--blue-dark);border-radius:15px;flex:none;place-items:center;display:grid}.stat-card:nth-child(2) .stat-icon{background:var(--red-soft);color:var(--red)}.stat-card:nth-child(3) .stat-icon{background:var(--green-soft);color:var(--green-dark)}.stat-card:nth-child(4) .stat-icon{background:var(--orange-soft);color:var(--orange-dark)}.stat-card strong{font-size:29px;line-height:1;display:block}.stat-card span{color:var(--muted);font-size:13px;font-weight:800}.admin-grid{grid-template-columns:1.3fr .7fr;gap:18px;display:grid}.admin-panel{border:1px solid var(--border);min-width:0;box-shadow:var(--shadow-sm);background:#fff;border-radius:21px;padding:21px}.admin-panel-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.admin-panel h2{margin-bottom:0;font-size:21px}.rank-list{flex-direction:column;gap:9px;margin:0;padding:0;list-style:none;display:flex}.rank-item{background:#f6f9fb;border-radius:12px;grid-template-columns:31px 1fr auto;align-items:center;gap:10px;padding:10px 12px;display:grid}.rank-number{background:var(--yellow-soft);color:#785b16;border-radius:9px;place-items:center;width:29px;height:29px;font-weight:950;display:grid}.rank-copy strong,.rank-copy small{display:block}.rank-copy small{color:var(--muted)}.rank-count{color:var(--purple-dark);font-weight:950}.admin-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.admin-toolbar .search-field{flex:1;min-width:240px;min-height:50px}.admin-toolbar .search-field input{height:45px}.admin-table-wrap{border:1px solid var(--border);background:#fff;border-radius:17px;overflow-x:auto}.admin-table{border-collapse:collapse;width:100%}.admin-table th,.admin-table td{text-align:left;vertical-align:middle;border-bottom:1px solid #e7eef3;padding:13px 15px}.admin-table th{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;background:#f7f9fb;font-size:12px;font-weight:950}.admin-table td{font-size:14px}.admin-table tr:last-child td{border-bottom:0}.table-primary{font-weight:900;display:block}.table-secondary{color:var(--muted);margin-top:2px;font-size:12px;display:block}.status-chip{width:fit-content;color:var(--green-dark);background:var(--green-soft);border-radius:8px;padding:5px 8px;font-size:11px;font-weight:900}.status-chip.overdue{color:#983c35;background:var(--red-soft)}.status-chip.returned{color:#566978;background:#edf2f5}.table-actions{gap:6px;display:flex}.table-actions button{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:10px;place-items:center;min-width:42px;min-height:42px;display:grid}.table-actions button:hover{background:#f2f6f9}.table-actions button.danger-icon{color:var(--red)}.admin-form-grid{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.admin-form-grid .full-row{grid-column:1/-1}.admin-field{flex-direction:column;gap:6px;display:flex}.admin-field span{font-size:13px;font-weight:900}.admin-field input,.admin-field select{border:2px solid #d6e1e9;border-radius:11px;outline:0;width:100%;min-height:49px;padding:9px 12px}.admin-field input:focus,.admin-field select:focus{border-color:var(--purple);box-shadow:0 0 0 3px #7b53d61a}.admin-modal{width:min(620px,100% - 28px)}.admin-card-list{display:none}@media (width<=1050px){.header-inner{gap:16px}.nav-link{padding:9px}.nav-link span{display:none}.book-grid{grid-template-columns:repeat(3,1fr)}.hero{grid-template-columns:minmax(0,.9fr) minmax(360px,1.1fr);gap:35px}.filter-row{flex-wrap:wrap;align-items:flex-start}.available-toggle{margin-left:auto}.stats-grid{grid-template-columns:repeat(2,1fr)}.teacher-stat-grid{grid-template-columns:repeat(3,1fr)}}@media (width<=800px){body{padding-bottom:82px}.page{padding-top:28px;padding-bottom:45px}.header-inner{width:min(100% - 28px,1180px);min-height:72px}.desktop-nav{display:none}.teacher-link{margin-left:auto}.teacher-link span{display:inline}.mobile-nav{z-index:60;min-height:76px;padding:7px max(8px, env(safe-area-inset-right)) max(7px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));border-top:1px solid var(--border);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#fffffff5;grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.pwa-notices{bottom:calc(84px + env(safe-area-inset-bottom))}.mobile-nav-link{color:#647688;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-height:59px;font-size:11px;font-weight:850;text-decoration:none;display:flex}.mobile-nav-link.active{color:var(--blue-dark);background:var(--blue-soft)}.hero{grid-template-columns:1fr;gap:38px;min-height:auto}.hero-copy{text-align:center}.hero-copy .eyebrow,.hero-copy .reassurance,.hero-copy p{margin-left:auto;margin-right:auto}.hero-visual{width:min(640px,94%);margin:0 auto}.home-actions{padding-top:65px}.action-grid{grid-template-columns:1fr}.action-card{grid-template-columns:65px 1fr 42px;align-items:center;gap:15px;min-height:165px;display:grid}.action-icon{margin-bottom:0}.action-arrow{position:static}.book-grid{grid-template-columns:repeat(2,1fr)}.book-choice-list{grid-template-columns:1fr;max-height:520px}.return-card{grid-template-columns:75px 1fr}.return-card .button{grid-column:1/-1;width:100%}.admin-grid{grid-template-columns:1fr}.teacher-header{align-items:stretch}.teacher-header-actions{justify-content:flex-start}.teacher-stat-grid{grid-template-columns:repeat(2,1fr)}.teacher-ranking-grid,.genre-create-panel{grid-template-columns:1fr}.genre-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-catalogue-toolbar{grid-template-columns:minmax(0,1fr) 180px}.clear-catalogue-filters{grid-column:1/-1;width:fit-content}.teacher-overdue-card .admin-section-heading{align-items:flex-start}}@media (width<=600px){.section-wrap,.section-wrap.narrow,.section-wrap.compact,.teacher-shell{width:calc(100% - 24px)}h1{font-size:38px}.brand small{display:none}.teacher-link{justify-content:center;width:48px;padding:0}.teacher-link span{display:none}.pwa-notice{grid-template-columns:auto minmax(0,1fr) auto;gap:9px}.pwa-notice>.button{grid-column:1/-1;width:100%}.pwa-dismiss{grid-area:1/3}.hero-copy p{font-size:17px}.hero-visual:before{border-radius:26px;inset:-8px}.hero-visual img{border-width:4px;border-radius:22px}.floating-note{font-size:12px}.action-card{grid-template-columns:55px 1fr 36px;gap:11px;min-height:178px;padding:18px}.action-icon{width:53px;height:53px}.action-text strong{font-size:19px}.action-text>span{font-size:13px}.action-arrow{width:35px;height:35px}.page-intro{display:block}.catalogue-count{flex-direction:row;align-items:baseline;gap:6px;width:fit-content;margin-top:18px}.catalogue-tools{border-left:0;border-right:0;border-radius:0;width:100%}.genre-pills{flex-wrap:nowrap;margin-right:-20px;padding-right:20px;overflow-x:auto}.filter-pill{flex:none}.select-control{flex:1}.available-toggle{width:100%;margin-left:0}.book-grid{gap:11px}.book-card{border-radius:16px}.book-card-body{padding:12px}.book-card h2{font-size:15px}.book-author{font-size:12px}.genre-tag,.level-tag{padding:4px 6px;font-size:9px}.availability{font-size:12px}.book-card .button{min-height:46px;font-size:11px}.form-step{padding:17px}.form-step legend,.fake-legend{font-size:18px}.chosen-books-panel{padding:13px}.selected-book-list{grid-template-columns:1fr}.available-books-heading{align-items:flex-start}.available-books-heading>span{margin-top:1px}.selection-rule,.selection-limit-warning{text-align:left;align-items:flex-start}.book-choice{grid-template-columns:64px minmax(0,1fr) auto;gap:10px;min-height:110px}.book-choice .book-cover{width:64px;height:86px}.book-choice-add{border-radius:50%;justify-content:center;width:34px;height:34px;padding:0;font-size:0!important}.book-choice-add svg{width:17px;height:17px}.date-summary{grid-template-columns:1fr}.date-summary>svg{display:none}.success-panel{border-radius:22px;padding:35px 18px}.success-actions,.modal-actions{flex-direction:column}.success-actions .button,.modal-actions .button{width:100%}.return-card{grid-template-columns:64px 1fr;padding:10px}.return-card .book-cover{width:64px;height:82px}.due-chip{align-items:flex-start}.teacher-login{width:calc(100% - 24px);padding:24px 18px}.teacher-header{flex-direction:column}.teacher-actions{justify-content:flex-start}.stats-grid{grid-template-columns:1fr}.teacher-header h1{font-size:37px}.teacher-header-actions{width:100%}.teacher-header-actions .button{flex:1;min-width:145px}.teacher-tabs{border-left:0;border-right:0;border-radius:0;width:100%}.teacher-tab{padding:9px 12px}.teacher-stat-grid{grid-template-columns:1fr}.teacher-catalogue-toolbar{grid-template-columns:1fr;padding:11px}.clear-catalogue-filters{width:100%}.genre-page-heading .genre-total{align-self:flex-start}.genre-create-panel{padding:14px}.genre-create-controls{grid-template-columns:1fr}.genre-create-controls .button{width:100%}.genre-admin-grid{grid-template-columns:1fr}.teacher-stat-card{flex-direction:row;justify-content:flex-start;align-items:center;min-height:92px}.teacher-overdue-card .admin-section-heading,.admin-section-heading{flex-direction:column;align-items:stretch}.teacher-overdue-card .admin-section-heading>div{align-items:flex-start}.teacher-ranking-list li{grid-template-columns:32px minmax(0,1fr)}.teacher-rank-count{grid-column:2}.admin-card,.admin-section{padding:16px}.admin-segmented{width:100%}.admin-segmented button{flex:1;justify-content:center}.admin-table-wrap{background:0 0;border:0;overflow:visible}.admin-table,.admin-table tbody,.admin-table tr,.admin-table td{width:100%;display:block}.admin-table thead{clip:rect(0,0,0,0);width:1px;height:1px;position:absolute;overflow:hidden}.admin-table tr{border:1px solid var(--border);box-shadow:var(--shadow-sm);background:#fff;border-radius:14px;margin-bottom:11px;padding:10px}.admin-table td{border-bottom:1px solid #edf2f5;grid-template-columns:minmax(92px,.34fr) minmax(0,1fr);align-items:center;gap:10px;min-height:42px;padding:9px 4px;display:grid}.admin-table td:last-child{border-bottom:0}.admin-table td:before{content:attr(data-label);color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:11px;font-weight:950}.admin-book-cell{min-width:0}.admin-row-actions{flex-wrap:wrap}.admin-row-actions .button{flex:1;min-width:105px}.admin-form-grid{grid-template-columns:1fr}.admin-form-grid .full-row,.admin-form-grid .admin-field.full{grid-column:auto}}@media (width<=460px){.teacher-tabs{padding:7px 12px;overflow:visible}.teacher-tabs>[role=tablist]{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.teacher-tab{width:100%;min-width:0;padding:9px 8px;font-size:12px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
