@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wIaZfrc.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wsaZfrc.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wMaZfrc.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wwaZfrc.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wAaZfrc.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wEaZfrc.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:"Source Sans 3";font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3w8aZQ.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wIaZfrc.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wsaZfrc.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wMaZfrc.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wwaZfrc.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wAaZfrc.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wEaZfrc.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:"Source Sans 3";font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3w8aZQ.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wIaZfrc.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wsaZfrc.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wMaZfrc.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wwaZfrc.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wAaZfrc.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wEaZfrc.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:"Source Sans 3";font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3w8aZQ.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wIaZfrc.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wsaZfrc.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wMaZfrc.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wwaZfrc.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wAaZfrc.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wEaZfrc.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:"Source Sans 3";font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3w8aZQ.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-family-base: "Source Sans 3", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--font-family-display: "Source Sans 3", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--bottom-nav-height: 64px;--color-primary: #7a5c3a;--color-primary-hover: #6b4f31;--color-secondary: #b08957;--color-accent: #8d6a3b;--color-success: #4f8a5b;--color-warning: #b07a3b;--color-danger: #a4493d;--color-bg: #f7f1e3;--color-bg-secondary: #f1e7d3;--color-bg-third: #e8dcc4;--color-surface: #fffaf0;--color-text: #2b2420;--color-text-secondary: #4a3b2a;--color-text-muted: #6b5a46;--color-border: #d4c7b0;--color-border-light: #e6dcc8;--color-border-dark: #b5a28a;--color-nav-bg: #f1e7d3;--color-nav-fg: #2b2420;--color-nav-border: #d9cbb5;--color-nav-active: rgba(122, 92, 58, .12);--color-nav-muted: #6b5a46;--shadow-md: 0 6px 20px rgba(74, 59, 42, .12);--shadow-lg: 0 12px 28px rgba(74, 59, 42, .18);--shadow-topbar: 0 6px 18px rgba(74, 59, 42, .18);--shadow-primary-btn: 0 6px 16px rgba(122, 92, 58, .25);--focus-ring: 0 0 0 2px rgba(122, 92, 58, .35);--color-accent-subtle: rgba(122, 92, 58, .06);--color-accent-light: rgba(122, 92, 58, .1);--color-accent-md: rgba(122, 92, 58, .15);--color-accent-border: rgba(122, 92, 58, .2);--color-accent-strong: rgba(122, 92, 58, .3)}:root[data-theme=dark]{--color-primary: #c49b6b;--color-primary-hover: #b68959;--color-secondary: #d7b07b;--color-accent: #c49b6b;--color-success: #6aa374;--color-warning: #c48a4a;--color-danger: #b06152;--color-bg: #1b1510;--color-bg-secondary: #241c15;--color-bg-third: #2a2118;--color-surface: #211a14;--color-text: #f6ead8;--color-text-secondary: #d3c0a3;--color-text-muted: #b39c7f;--color-border: #3b2f23;--color-border-light: #4a3a2b;--color-border-dark: #241c15;--color-nav-bg: #241c15;--color-nav-fg: #f6ead8;--color-nav-border: #3b2f23;--color-nav-active: rgba(196, 155, 107, .15);--color-nav-muted: #b39c7f;--shadow-md: 0 8px 22px rgba(0, 0, 0, .35);--shadow-lg: 0 14px 32px rgba(0, 0, 0, .45);--shadow-topbar: 0 6px 18px rgba(0, 0, 0, .4);--shadow-primary-btn: 0 6px 16px rgba(0, 0, 0, .35);--focus-ring: 0 0 0 2px rgba(196, 155, 107, .4);--color-accent-subtle: rgba(196, 155, 107, .06);--color-accent-light: rgba(196, 155, 107, .12);--color-accent-md: rgba(196, 155, 107, .18);--color-accent-border: rgba(196, 155, 107, .25);--color-accent-strong: rgba(196, 155, 107, .35)}*{box-sizing:border-box}html{font-size:16px}body{margin:0;font-family:var(--font-family-base);color:var(--color-text);background:var(--color-bg);line-height:1.6;-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility;min-height:100vh;position:relative}a{color:inherit;text-decoration-thickness:.08em;text-underline-offset:.2em}::selection{background:var(--color-accent-border);color:var(--color-text)}a:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:4px}img{max-width:100%;display:block}button,input,select,textarea{font-family:inherit}form{margin:0}.page{width:min(1100px,100%);max-width:1100px;margin:0 auto;padding:16px 16px 32px;display:grid;gap:16px;position:relative;z-index:1}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:16px;box-shadow:var(--shadow-md)}.card h2,.card h3{margin:0 0 8px;line-height:1.2;font-family:var(--font-family-display);text-transform:none;letter-spacing:.01em}h2{font-size:1.4rem;letter-spacing:.02em}h3{font-size:1.1rem;letter-spacing:.01em}p{margin:0 0 12px}p:last-child{margin-bottom:0}.muted{color:var(--color-text-muted)}.grid{display:grid;gap:12px}.grid-2{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 12px;border-radius:8px;border:1px solid var(--color-border);background:var(--color-surface);color:inherit;cursor:pointer;font-weight:600;min-height:44px;transition:transform .15s ease,box-shadow .15s ease,background .2s ease,border-color .2s ease;touch-action:manipulation}.button.primary{background:var(--color-primary);color:#fffaf0;border-color:transparent;box-shadow:var(--shadow-primary-btn)}.button.primary:hover{background:var(--color-primary-hover)}.button:disabled{cursor:not-allowed;opacity:.6;box-shadow:none}.button:focus-visible{outline:none;box-shadow:var(--focus-ring)}.button:active{transform:translateY(0)}.input,.select,textarea{width:100%;border-radius:8px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);padding:10px 12px;font-size:1rem;min-height:44px;box-shadow:inset 0 0 0 1px var(--color-accent-subtle)}.input:focus,.select:focus,textarea:focus{outline:none;box-shadow:var(--focus-ring);border-color:transparent}.input::placeholder,textarea::placeholder{color:var(--color-text-muted)}label{display:grid;gap:6px;font-size:.9rem;font-weight:600;color:var(--color-text-secondary)}.list{display:grid;gap:12px}.list-item{display:grid;gap:8px;border:1px solid var(--color-border);border-radius:12px;padding:12px;background:var(--color-surface)}.cover{width:68px;height:96px;object-fit:cover;border-radius:8px;background:var(--color-bg-secondary);border:1px solid var(--color-accent-border)}.list-item-row{display:grid;grid-template-columns:68px 1fr auto;gap:12px;align-items:start}@media(max-width:700px){.list-item-row{grid-template-columns:1fr;align-items:start}.cover{width:100%;height:180px}.list-item-row .button,.list-item-row .status-pill{justify-self:start}}@media(max-width:600px){.page{gap:12px}.card{padding:14px}.list-item{padding:12px}.button{width:100%}}@media(hover:hover){.button:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.app-shell{min-height:100vh;min-height:100svh;background:radial-gradient(circle at top,var(--color-accent-subtle),transparent 55%),linear-gradient(180deg,var(--color-bg) 0%,var(--color-bg-secondary) 100%);color:var(--color-text);position:relative;z-index:1}.skip-link{position:absolute;left:-999px;top:12px;padding:8px 12px;background:var(--color-nav-bg);color:var(--color-nav-fg);border-radius:8px;z-index:30;text-decoration:none;box-shadow:var(--shadow-md)}.skip-link:focus-visible{left:12px;outline:none;box-shadow:var(--focus-ring)}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 20px;background:var(--color-nav-bg);color:var(--color-nav-fg);border-bottom:1px solid var(--color-nav-border);box-shadow:var(--shadow-topbar)}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,#f5ead6,#dcc5a4);border:1px solid var(--color-accent-border);display:grid;place-items:center;box-shadow:0 4px 10px var(--color-accent-border)}.brand-mark img{width:26px;height:26px}:root[data-theme=dark] .brand-mark{background:linear-gradient(135deg,#2d241a,#3b2f23);border-color:#4a3a2b}.brand-title{font-size:1rem;font-weight:600;font-family:var(--font-family-display);text-transform:none;letter-spacing:.02em}.brand-subtitle{font-size:.75rem;color:var(--color-nav-muted)}.top-nav{display:flex;gap:8px;flex:1;justify-content:center}.top-nav a{display:inline-flex;align-items:center;justify-content:center;gap:6px;color:var(--color-nav-muted);text-decoration:none;padding:8px 12px;border-radius:8px;font-weight:600;font-family:var(--font-family-display);text-transform:none;letter-spacing:.02em;font-size:.875rem;min-height:44px;transition:background .2s ease,color .2s ease}.top-nav a.active,.top-nav a:hover{color:var(--color-nav-fg);background:var(--color-nav-active);box-shadow:inset 0 -2px 0 var(--color-primary)}.top-actions{display:flex;align-items:center;gap:10px}.ghost-button,.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--color-border);background:transparent;color:var(--color-nav-fg);padding:6px 12px;border-radius:8px;cursor:pointer;font-weight:600;text-decoration:none;min-height:44px;transition:background .2s ease,color .2s ease,box-shadow .2s ease}.topbar .ghost-button{border-color:var(--color-border-dark)}.primary-button{background:var(--color-primary);border-color:transparent;color:#fffaf0;box-shadow:var(--shadow-primary-btn)}.primary-button:hover{background:var(--color-primary-hover)}.top-nav a:focus-visible,.ghost-button:focus-visible,.primary-button:focus-visible{outline:none;box-shadow:var(--focus-ring)}.user-menu{position:relative}.user-menu summary{list-style:none}.user-menu summary::-webkit-details-marker{display:none}.hamburger{display:inline-grid;gap:3px;width:18px}.hamburger span{display:block;height:2px;border-radius:999px;background:currentColor}.menu-name{margin-left:8px;color:var(--color-nav-muted);font-weight:600}.menu-panel{position:absolute;right:0;top:calc(100% + 8px);min-width:200px;padding:8px;border-radius:12px;background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-lg);display:grid;gap:6px;z-index:40}.menu-user{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);padding:4px 8px}.menu-item{display:flex;align-items:center;gap:8px;border:0;background:transparent;color:var(--color-text);text-align:left;padding:10px 12px;border-radius:10px;cursor:pointer;font-weight:600;width:100%}.menu-item:hover,.menu-item:focus-visible{background:var(--color-bg-third);outline:none}.menu-item.danger{color:var(--color-danger)}.menu-separator{height:1px;background:var(--color-border);margin:4px 0}.csv-modal{width:100%;max-width:380px;text-align:center}.csv-modal h3{margin:0;font-size:1.15rem}.csv-modal-body{display:flex;flex-direction:column;align-items:center;gap:16px;padding:8px 0}.csv-modal-body p{margin:0;color:var(--color-text-secondary);font-size:.95rem}.csv-modal-stats{display:flex;justify-content:center;gap:24px}.csv-stat{display:flex;flex-direction:column;align-items:center;gap:2px}.csv-stat-value{font-size:1.5rem;font-weight:700}.csv-stat-error{color:var(--color-danger)}.csv-stat-label{font-size:.8rem;color:var(--color-text-muted);font-weight:600}.csv-modal-errors{max-height:120px;overflow-y:auto;text-align:left;font-size:.8rem;color:var(--color-text-muted);background:var(--color-bg-secondary);border-radius:8px;padding:8px 12px}.csv-modal-errors p{margin:0 0 4px}.csv-modal-errors p:last-child{margin-bottom:0}.bottom-nav{display:none}.main-content{padding:24px 20px 40px;padding-bottom:calc(40px + env(safe-area-inset-bottom))}.route-container>*{animation:route-in .22s ease-out}@keyframes route-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:600px){.topbar{position:sticky;top:0;bottom:auto;padding:10px 12px;box-shadow:var(--shadow-topbar);flex-wrap:nowrap;justify-content:space-between}.top-nav,.brand-text{display:none}.top-actions{gap:6px}.menu-name{display:none}.hamburger{width:20px}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:0;width:100%;padding:6px 0 calc(6px + env(safe-area-inset-bottom));min-height:var(--bottom-nav-height);background:var(--color-nav-bg);-webkit-backdrop-filter:none;backdrop-filter:none;border-top:1px solid var(--color-nav-border);box-shadow:var(--shadow-topbar)}.bottom-nav a{flex:1 1 0;min-width:0;display:grid;place-items:center;gap:4px;color:var(--color-nav-muted);text-decoration:none;font-size:1rem;line-height:1.2;font-weight:600;font-family:var(--font-family-display);text-transform:none;letter-spacing:.02em;padding:8px 4px;border-radius:0;min-height:44px}.bottom-nav a.active,.bottom-nav a:hover{color:var(--color-nav-fg);background:var(--color-nav-active);box-shadow:inset 0 -2px 0 var(--color-primary)}.main-content{padding:20px 16px calc(var(--bottom-nav-height) + 24px + env(safe-area-inset-bottom))}}@media(max-width:430px){.bottom-nav a{font-size:1rem}}@keyframes spinner-rotate{to{transform:rotate(360deg)}}.spinner{display:inline-block;width:24px;height:24px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spinner-rotate .8s linear infinite}.spinner.spinner-sm{width:18px;height:18px;border-width:2px}.spinner.spinner-lg{width:40px;height:40px;border-width:4px}.loading-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#f7f1e3d9;border-radius:inherit;z-index:10}:root[data-theme=dark] .loading-overlay{background:#1b1510d9}.loading-container{display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px}.loading-text{font-size:.9rem;color:var(--color-text-muted);font-weight:500}.fullpage-loader{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#f7f1e3eb;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}:root[data-theme=dark] .fullpage-loader{background:#1b1510eb}.fullpage-loader-content{display:flex;flex-direction:column;align-items:center;gap:16px;padding:32px;background:var(--color-surface);border-radius:16px;border:1px solid var(--color-border);box-shadow:var(--shadow-lg)}.success-message{color:var(--color-success);font-weight:600;padding:8px 12px;background:#4f8a5b14;border:1px solid rgba(79,138,91,.2);border-left:3px solid var(--color-success);border-radius:8px;animation:msg-fade-in .2s ease-out}.error-message{color:var(--color-danger);font-weight:600;padding:8px 12px;background:#a4493d14;border:1px solid rgba(164,73,61,.2);border-left:3px solid var(--color-danger);border-radius:8px;animation:msg-fade-in .2s ease-out}@keyframes msg-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.empty-state{text-align:center;padding:32px 20px;color:var(--color-text-muted)}.empty-state-icon{margin-bottom:12px;opacity:.4}.empty-state p{font-size:1rem;margin:0 0 16px}.empty-state .button{margin-top:8px}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes dialog-in{0%{opacity:0;transform:scale(.95) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes save-flash{0%{box-shadow:0 0 #4f8a5b66}50%{box-shadow:0 0 0 6px #4f8a5b00}to{box-shadow:none}}.button.primary:active:not(:disabled){animation:save-flash .4s ease-out}.modal-backdrop{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;padding:20px;z-index:50;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:backdrop-in .2s ease-out}.lend-dialog,.confirm-dialog,.enrich-dialog,.modal,.scan-modal{background:var(--color-surface);border-radius:16px;border:1px solid var(--color-border);box-shadow:0 24px 48px #0000004d;padding:24px;display:grid;gap:16px;animation:dialog-in .25s ease-out}.lend-dialog h3,.confirm-dialog h3,.enrich-dialog h3{margin:0;font-size:1.25rem}.modal-close{border:0;background:transparent;width:32px;height:32px;cursor:pointer;color:var(--color-text-muted);display:flex;align-items:center;justify-content:center;border-radius:8px;transition:background .2s ease;flex-shrink:0}.modal-close svg{width:20px;height:20px}.modal-close:hover{background:var(--color-accent-light)}.modal-close:disabled{cursor:not-allowed;opacity:.6}.button.success{background:#4c8c4a26;color:var(--color-success);border-color:#4c8c4a59}.button.danger{color:var(--color-danger);border-color:#a4493d59;background:#a4493d14}@media(hover:hover){.button.success:hover{background:#4c8c4a40}.button.danger:hover{background:#a4493d29}}.location-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:999px;font-size:.85rem;font-weight:600;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background .15s ease;box-shadow:0 1px 3px #0000001f}.location-pill:focus-visible{outline:none;box-shadow:var(--focus-ring)}.location-pill .pill-icon{flex-shrink:0}.location-pill.at-home{background:#4c8c4a2e;color:var(--color-success);border:1px solid rgba(76,140,74,.3)}.location-pill.lent{background:#c4963233;color:var(--color-warning);border:1px solid rgba(196,150,50,.35)}@media(hover:hover){.location-pill:hover{transform:translateY(-1px);box-shadow:0 3px 8px #00000026}.location-pill.at-home:hover{background:#4c8c4a47}.location-pill.lent:hover{background:#c496324d}}.location-pill:active{transform:translateY(0);box-shadow:0 1px 2px #0000001a}.lend-dialog{width:min(440px,100%)}.confirm-dialog{width:min(420px,100%)}.lend-book-title{margin:0;color:var(--color-text-muted);font-style:italic}.form-group{display:grid;gap:6px}.form-group label{font-size:.85rem;font-weight:600;color:var(--color-text-secondary)}.form-group textarea{resize:vertical;min-height:60px}.lend-error{margin:0;color:var(--color-danger);font-size:.85rem}.lend-actions,.confirm-actions,.modal-actions{display:flex;justify-content:flex-end;gap:12px;flex-wrap:wrap}.confirm-dialog p{margin:0;color:var(--color-text-muted)}.search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;border-radius:50%;background:transparent;color:var(--color-text-muted);cursor:pointer;transition:background .15s ease,color .15s ease}@media(hover:hover){.search-clear:hover{background:var(--color-accent-light);color:var(--color-text)}}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.modal-languages{padding:16px;background:var(--color-bg);border-radius:12px;border:1px solid var(--color-border)}.modal-languages-label{font-size:.9rem;font-weight:600;color:var(--color-text-secondary);margin:0 0 12px}.language-options{display:flex;flex-wrap:wrap;gap:10px}.language-option{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;cursor:pointer;transition:background .15s ease,border-color .15s ease;font-weight:500}.language-option:hover{background:var(--color-bg-secondary)}.language-option input[type=checkbox]{position:absolute;opacity:0;width:0;height:0}.language-checkbox{width:20px;height:20px;border:2px solid var(--color-border-dark);border-radius:4px;display:flex;align-items:center;justify-content:center;transition:background .15s ease,border-color .15s ease;flex-shrink:0}.language-checkbox:after{content:"";width:10px;height:6px;border:2px solid transparent;border-top:none;border-right:none;transform:rotate(-45deg) translateY(-1px)}.language-option input:checked+.language-checkbox{background:var(--color-primary);border-color:var(--color-primary)}.language-option input:checked+.language-checkbox:after{border-color:#fff}.language-option input:disabled+.language-checkbox{opacity:.5}.language-label{font-size:.9rem;color:var(--color-text)}.language-hint{margin:12px 0 0;font-size:.85rem;color:var(--color-warning)}.icon-btn{padding:10px;display:inline-flex;align-items:center;justify-content:center}.icon-btn .icon{width:20px;height:20px}.poster{width:100%;height:auto;aspect-ratio:2 / 3;object-fit:cover;border-radius:8px;box-shadow:0 4px 12px #0003;background:var(--color-bg);border:1px solid var(--color-accent-border)}.notes-section h3{font-size:1rem;font-weight:600;margin:0 0 12px}.notes-section textarea{width:100%;min-height:60px;resize:vertical;padding:10px;border-radius:8px;border:1px solid var(--color-accent-strong);background:var(--color-bg);color:var(--color-text);font-family:inherit;font-size:.9rem}.notes-section textarea:focus{outline:none;border-color:var(--color-primary)}.action-buttons{display:flex;gap:8px;align-items:center}.add-btn{padding:10px;display:inline-flex;align-items:center;justify-content:center;align-self:center}.add-btn .icon{width:20px;height:20px}.in-library-btn{padding:10px 16px;display:inline-flex;align-items:center;justify-content:center;align-self:center;gap:8px;background:var(--color-success);border-color:transparent;color:#fffaf0;font-weight:600;font-size:.85rem}.in-library-btn .icon{width:18px;height:18px}@media(hover:hover){.in-library-btn:hover{background:#3d7449}}.result-card{background:linear-gradient(135deg,var(--color-bg-secondary) 0%,var(--color-bg) 100%);border-radius:12px;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}.result-info{display:flex;flex-direction:column;gap:4px}.result-title{font-weight:700;margin:0;line-height:1.3}.result-title .year{font-weight:400;opacity:.7}.result-subtitle{font-style:italic;color:var(--color-text-muted);margin:0}.result-authors{color:var(--color-text-muted);margin:0}.result-subjects{color:var(--color-text-muted);margin:4px 0 0;padding-top:4px;border-top:1px solid var(--color-accent-md)}.result-description{color:var(--color-text-muted);margin:4px 0 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.result-isbn{display:flex;flex-wrap:wrap;gap:8px;color:var(--color-text-muted)}
