:root {
    color-scheme: light;
    --pine: #003399;
    --pine-soft: #003399;
    --ink: #202020;
    --muted: #53616B;
    --paper: #F4F5F6;
    --surface: #ffffff;
    --line: #D8E0E7;
    --lime: #EAE456;
    --amber: #EAE456;
    --orange: #009FE8;
    --red: #a63d30;
    --radius: 6px;
}

* { box-sizing: border-box; }
body {
    margin: 0;
    background: var(--paper);
    color: var(--ink);
    font-family: "Avenir Next", "Segoe UI Variable", "Segoe UI", sans-serif;
    font-size: 15px;
    line-height: 1.5;
}
a { color: inherit; }
.topbar {
    min-height: 66px;
    padding: 0 max(24px, calc((100vw - 1180px) / 2));
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    background: var(--pine);
    color: white;
}
.brand { display: flex; align-items: center; gap: 11px; text-decoration: none; }
.brand-mark {
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    border: 2px solid white;
    border-radius: 50%;
    background: white;
    object-fit: cover;
}
.brand strong, .brand small { display: block; }
.brand strong { font-size: 15px; line-height: 1.2; }
.brand small { margin-top: 3px; color: #DCE7F3; font-size: 11px; }
.account-bar { display: flex; align-items: center; gap: 15px; }
.member-nav { color: #E3EDF8; font-size: 13px; font-weight: 700; text-decoration: none; }
.member-nav:hover { color: var(--lime); }
.account-name { color: #E3EDF8; font-size: 13px; }
.account-bar form { margin: 0; }
.page-shell { width: min(1180px, calc(100% - 48px)); min-height: calc(100vh - 120px); margin: 0 auto; padding: 44px 0 64px; }
.site-footer { padding: 17px 24px; border-top: 1px solid var(--line); color: var(--muted); text-align: center; font-size: 12px; }
.site-footer span { padding: 0 5px; color: var(--orange); }
.footer-links { display: flex; justify-content: center; gap: 18px; margin-top: 8px; }
.footer-links a { color: var(--muted); }
.legal-page { max-width: 820px; margin: 0 auto; color: var(--ink); line-height: 1.65; }
.legal-page h1 { margin: 0 0 20px; }
.legal-page h2 { margin: 30px 0 8px; font-size: 20px; }
.legal-page p, .legal-page ul { margin: 8px 0 14px; }
.legal-page li { margin: 8px 0; }
.legal-page address { font-style: normal; }
.legal-page a { color: var(--blue); }
.legal-notice { padding: 14px 16px; border-left: 4px solid var(--yellow); background: #fffbea; }
.page-heading { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 30px; }
.eyebrow { margin: 0 0 8px; color: var(--pine-soft); font-size: 11px; font-weight: 800; text-transform: uppercase; }
h1 { margin: 0; font-size: clamp(28px, 4vw, 40px); font-weight: 700; line-height: 1.1; }
.page-intro, .form-heading p:last-child { margin: 9px 0 0; color: var(--muted); }
.button { min-height: 42px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid transparent; border-radius: var(--radius); padding: 0 16px; font: inherit; font-size: 14px; font-weight: 700; text-decoration: none; cursor: pointer; }
.button-primary { background: var(--pine); color: white; }
.button-primary:hover { background: #002B73; }
.button-secondary { border-color: var(--line); background: white; color: var(--ink); }
.button-quiet { min-height: 34px; padding: 0 10px; background: transparent; color: #E6EEF8; font-size: 13px; }
.button-quiet:hover { background: #002B73; }
.button-filter { min-height: 40px; background: var(--pine-soft); color: white; }
.button-small { min-height: 32px; padding: 0 10px; font-size: 12px; }
.button-danger { background: #fae5df; color: #913a2b; }
.button-wide { width: 100%; margin-top: 5px; }
.summary-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 22px; }
.summary-item { min-height: 92px; display: flex; flex-direction: column; justify-content: space-between; padding: 14px 17px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); text-decoration: none; }
.summary-item span { color: var(--muted); font-size: 12px; font-weight: 600; }
.summary-item strong { font-size: 27px; line-height: 1; }
.summary-total { border-color: var(--pine); background: var(--pine); color: white; }
.summary-total span { color: #DCE7F3; }
.summary-action { border-color: #EAE456; background: #FFFDE0; }
.summary-action strong { color: #5D5600; }
.summary-action.is-selected { box-shadow: inset 0 0 0 2px var(--amber); }
.summary-unknown { border-color: #8BCFEA; background: #EFF9FD; }
.summary-unknown strong { color: #005078; }
.summary-unknown.is-selected { box-shadow: inset 0 0 0 2px #009FE8; }
.filter-bar { display: grid; grid-template-columns: minmax(200px, 1fr) minmax(150px, 190px) minmax(150px, 190px) auto auto; gap: 9px; margin-bottom: 14px; }
.filter-bar input, .filter-bar select, .input-control, .field input, .field select, .field textarea {
    width: 100%; min-height: 42px; border: 1px solid #CBD4DF; border-radius: var(--radius); padding: 9px 11px; background: white; color: var(--ink); font: inherit;
}
.filter-bar input:focus, .filter-bar select:focus, .field input:focus, .field select:focus, .field textarea:focus { outline: 3px solid #B9E8FB; border-color: var(--pine-soft); }
.clear-link { align-self: center; color: var(--muted); font-size: 13px; text-decoration-thickness: 1px; }
.inventory-section { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.list-heading, .material-row { display: grid; grid-template-columns: minmax(260px, 1.6fr) minmax(170px, .9fr) minmax(190px, 1fr) 90px; align-items: center; gap: 14px; padding: 13px 18px; }
.list-heading { min-height: 42px; border-bottom: 1px solid var(--line); background: #EEF2F6; color: var(--muted); font-size: 10px; font-weight: 800; text-transform: uppercase; }
.material-row { min-height: 82px; border-bottom: 1px solid #E8EDF2; }
.material-row:last-child { border-bottom: 0; }
.item-identity { display: flex; align-items: center; gap: 13px; min-width: 0; }
.item-index { flex: 0 0 34px; color: #78838B; font-family: "Cascadia Code", Consolas, monospace; font-size: 11px; }
.item-identity h2 { overflow: hidden; margin: 0; font-size: 15px; font-weight: 700; text-overflow: ellipsis; }
.item-location { margin: 4px 0 0; color: var(--muted); font-size: 12px; }
.item-location span { color: #53616B; font-family: "Cascadia Code", Consolas, monospace; font-size: 11px; }
.item-category { display: flex; align-items: center; gap: 8px; color: #40484F; font-size: 12px; }
.category-mark { width: 9px; height: 9px; border-radius: 2px; background: var(--pine-soft); }
.category-group { background: var(--amber); }
.category-verbund { background: #009FE8; }
.item-status { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; }
.status-label, .mark-missing { display: inline-flex; align-items: center; min-height: 24px; border-radius: 3px; padding: 2px 8px; font-size: 11px; font-weight: 700; }
.status-ready { background: #e7f1df; color: #315c2b; }
.status-unknown { background: #EEF2F6; color: #53616B; }
.status-limited { background: #fff0d6; color: #865615; }
.status-defect { background: #fae5df; color: #913a2b; }
.mark-missing { background: #fff1d2; color: #8c4e12; }
.mark-unknown { background: #EFF9FD; color: #005078; }
.text-action { color: var(--pine-soft); font-size: 12px; font-weight: 700; }
.empty-state { display: flex; flex-direction: column; gap: 5px; padding: 40px 20px; text-align: center; }
.empty-state span { color: var(--muted); font-size: 13px; }
.messages { margin-bottom: 18px; }
.message { margin: 0; border-left: 3px solid var(--pine-soft); padding: 10px 13px; background: white; }
.form-page { max-width: 680px; margin: 0 auto; }
.back-link { display: inline-block; margin-bottom: 28px; color: var(--pine-soft); font-size: 13px; font-weight: 700; text-decoration: none; }
.form-heading { margin-bottom: 25px; }
.form-heading h1 { font-size: 32px; }
.data-form { display: grid; gap: 16px; padding: 22px; border: 1px solid var(--line); border-radius: var(--radius); background: white; }
.field { display: grid; gap: 6px; }
.field label { color: #35414A; font-size: 13px; font-weight: 700; }
.field textarea { resize: vertical; }
.checkbox-field { display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 9px 0; color: var(--ink); font-weight: 600; }
.checkbox-field input { width: 18px; height: 18px; accent-color: var(--pine); }
.field-help { color: var(--muted); }
.field-error, .form-alert { margin: 0; border-left: 3px solid var(--red); padding: 10px 12px; background: #fff0ec; color: #812d23; font-size: 13px; }
.form-actions { display: flex; gap: 9px; margin-top: 4px; }
.login-layout { display: grid; grid-template-columns: minmax(320px, 470px) 1fr; min-height: 510px; max-width: 900px; margin: 24px auto; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); }
.login-panel { align-self: center; padding: 48px; }
.login-panel h1 { font-size: 36px; }
.login-copy { margin: 12px 0 28px; color: var(--muted); }
.login-panel .form-stack { display: grid; gap: 17px; }
.login-panel .field { display: grid; gap: 7px; }
.login-panel label { color: #35414A; font-size: 13px; font-weight: 700; }
.login-panel input { min-height: 44px; border: 1px solid #CBD4DF; border-radius: var(--radius); padding: 9px 11px; font: inherit; }
.login-panel input:focus { outline: 3px solid #B9E8FB; border-color: var(--pine-soft); }
.auth-links { display: flex; justify-content: space-between; gap: 12px; margin: 18px 0 12px; font-size: 13px; }
.auth-links a { color: var(--pine-soft); font-weight: 700; }
.login-aside { position: relative; display: flex; align-items: center; overflow: hidden; padding: 36px; background: var(--pine); color: white; }
.login-aside p { margin: 0; font-size: clamp(30px, 4vw, 48px); font-weight: 500; line-height: 1.12; }
.login-aside strong { color: var(--lime); font-weight: 700; }
.aside-rule { position: absolute; top: 0; right: 40px; width: 14px; height: 100%; background: var(--amber); }
.aside-code { position: absolute; left: 36px; bottom: 25px; color: #DCE7F3; font-family: "Cascadia Code", Consolas, monospace; font-size: 11px; }
.message-page { max-width: 650px; margin: 42px auto; padding: 30px; border-left: 5px solid var(--pine-soft); background: white; }
.message-page h1 { font-size: 30px; }
.message-page p:not(.eyebrow) { margin: 12px 0 22px; color: var(--muted); }
.member-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 520px; }
.member-list { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: white; }
.member-list-heading, .member-row { display: grid; grid-template-columns: minmax(210px, 1.4fr) minmax(130px, .8fr) minmax(140px, .8fr) minmax(250px, 1.5fr); align-items: start; gap: 14px; padding: 15px 18px; }
.member-list-heading { background: #EEF2F6; color: var(--muted); font-size: 10px; font-weight: 800; text-transform: uppercase; }
.member-row { border-top: 1px solid #E8EDF2; }
.member-identity { display: grid; gap: 4px; overflow-wrap: anywhere; }
.member-identity strong { font-size: 14px; }
.member-identity span { color: var(--muted); font-size: 12px; }
.member-status { display: inline-flex; border-radius: 3px; padding: 4px 8px; background: #EEF2F6; color: #414A52; font-size: 11px; font-weight: 700; }
.status-approval_pending { background: #fff0d6; color: #865615; }
.status-email_pending { background: #EFF9FD; color: #005078; }
.status-approved, .status-active { background: #e7f1df; color: #315c2b; }
.status-rejected, .status-inactive { background: #fae5df; color: #913a2b; }
.member-roles, .member-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.member-actions form { margin: 0; }
.role-chip { display: inline-flex; border-radius: 3px; padding: 3px 7px; font-size: 11px; font-weight: 700; }
.role-admin { background: #EAE456; color: #3D3B1B; }
.role-manager { background: #EFF9FD; color: #005078; }
.role-empty { color: var(--muted); font-size: 12px; }
.dashboard-stats { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; margin-bottom: 22px; }
.dashboard-stat { min-height: 92px; display: flex; flex-direction: column; justify-content: space-between; padding: 13px 15px; border: 1px solid var(--line); border-radius: var(--radius); background: white; text-decoration: none; }
.dashboard-stat span { color: var(--muted); font-size: 11px; font-weight: 700; line-height: 1.3; }
.dashboard-stat strong { color: var(--pine); font-size: 26px; line-height: 1; }
.dashboard-stat:hover { border-color: var(--pine-soft); }
.stat-classification { border-top: 3px solid #009FE8; }
.stat-missing { border-top: 3px solid var(--amber); }
.stat-unknown { border-top: 3px solid #009FE8; }
.stat-status { border-top: 3px solid #c88938; }
.stat-defect { border-top: 3px solid var(--red); }
.dashboard-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; align-items: start; }
.dashboard-panel { min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: white; }
.dashboard-panel header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 15px 17px 12px; border-bottom: 1px solid #E8EDF2; }
.dashboard-panel header .eyebrow { margin-bottom: 4px; }
.dashboard-panel h2 { margin: 0; font-size: 16px; }
.dashboard-panel header > strong { color: var(--pine); font-size: 24px; }
.dashboard-panel-defects header > strong { color: var(--red); }
.dashboard-panel-todos { grid-column: 1 / -1; }
.dashboard-todo-main { display: grid; justify-content: initial; }
.dashboard-todo-main small { overflow: visible; text-overflow: initial; white-space: normal; }
.dashboard-item { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 0 17px; border-bottom: 1px solid #E8EDF2; }
.dashboard-item:hover { background: #F3F8FC; }
.dashboard-item-main { display: flex; flex: 1; align-items: center; justify-content: space-between; gap: 12px; min-width: 0; padding: 11px 0; color: inherit; text-decoration: none; }
.dashboard-item-main span:first-child { display: grid; gap: 3px; min-width: 0; }
.dashboard-item strong { overflow: hidden; font-size: 13px; text-overflow: ellipsis; }
.dashboard-item small { overflow: hidden; color: var(--muted); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-item-arrow { color: var(--pine); font-size: 20px; }
.dashboard-email-link { flex: 0 0 auto; color: var(--pine-soft); font-size: 11px; font-weight: 700; }
.dashboard-empty { margin: 0; padding: 17px; color: var(--muted); font-size: 12px; }
.panel-link { display: inline-block; margin: 10px 17px 14px; color: var(--pine-soft); font-size: 12px; font-weight: 700; }
.consumable-section { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.consumable-list-heading, .consumable-row { display: grid; grid-template-columns: minmax(210px, 1.4fr) minmax(190px, 1fr) minmax(160px, 1fr) minmax(120px, .7fr); align-items: center; gap: 14px; padding: 13px 18px; }
.consumable-list-heading { min-height: 42px; border-bottom: 1px solid var(--line); background: #EEF2F6; color: var(--muted); font-size: 10px; font-weight: 800; text-transform: uppercase; }
.consumable-row { min-height: 78px; border-bottom: 1px solid #E8EDF2; }
.consumable-row:last-child { border-bottom: 0; }
.consumable-identity { min-width: 0; }
.consumable-identity h2 { margin: 0; font-size: 14px; }
.consumable-identity p, .consumable-stock small { display: block; margin: 4px 0 0; color: var(--muted); font-size: 11px; }
.consumable-stock { display: grid; gap: 3px; }
.consumable-stock > strong { font-size: 14px; }
.consumable-location { color: #40484F; font-size: 12px; }
.consumable-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 5px; }
.wishlist-section { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.wishlist-list-heading, .wishlist-row { display: grid; grid-template-columns: minmax(210px, 1.5fr) minmax(130px, .8fr) minmax(135px, .8fr) minmax(130px, .8fr) minmax(80px, .5fr); align-items: start; gap: 13px; padding: 14px 17px; }
.wishlist-list-heading { min-height: 42px; align-items: center; border-bottom: 1px solid var(--line); background: #EEF2F6; color: var(--muted); font-size: 10px; font-weight: 800; text-transform: uppercase; }
.wishlist-row { border-bottom: 1px solid #E8EDF2; }
.wishlist-row:last-child { border-bottom: 0; }
.wishlist-identity { min-width: 0; }
.wishlist-identity h2 { margin: 0; font-size: 14px; }
.wishlist-identity p { margin: 4px 0; color: #40484F; font-size: 12px; }
.wishlist-identity small, .wishlist-requester small { display: block; margin-top: 3px; color: var(--muted); font-size: 11px; }
.wishlist-manager-note { color: #865615 !important; }
.wishlist-quantity { display: grid; justify-items: start; gap: 6px; font-size: 12px; }
.priority-label, .wishlist-status { display: inline-flex; align-items: center; min-height: 24px; border-radius: 3px; padding: 2px 8px; background: #EEF2F6; color: #414A52; font-size: 11px; font-weight: 700; }
.priority-high { background: #fae5df; color: #913a2b; }
.priority-low { background: #EFF9FD; color: #005078; }
.wishlist-status-approved { background: #fff0d6; color: #865615; }
.wishlist-status-ordered, .wishlist-status-acquired { background: #e7f1df; color: #315c2b; }
.wishlist-status-deferred { background: #EEF2F6; color: #53616B; }
.wishlist-requester { font-size: 12px; }
.wishlist-filter { grid-template-columns: minmax(180px, 260px) auto auto; }
.draft-recipient { display: grid; gap: 3px; margin-bottom: 18px; border-left: 4px solid var(--amber); padding: 11px 14px; background: white; }
.draft-recipient span, .draft-recipient small { color: var(--muted); font-size: 12px; }
.draft-recipient strong { font-size: 14px; }
.draft-modes { display: flex; gap: 6px; margin-bottom: 16px; border-bottom: 1px solid var(--line); }
.draft-modes a { border-bottom: 3px solid transparent; padding: 10px 12px; color: var(--muted); font-size: 13px; font-weight: 700; text-decoration: none; }
.draft-modes a.is-active { border-color: var(--pine); color: var(--pine); }
.draft-fields { display: grid; gap: 17px; border: 1px solid var(--line); border-radius: var(--radius); padding: 20px; background: white; }
.copy-row { display: flex; gap: 8px; }
.copy-row input { flex: 1; min-width: 0; }
.draft-body { min-height: 300px; resize: vertical; font-family: "Cascadia Code", Consolas, monospace; font-size: 13px; }
.copy-button { align-self: flex-start; }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }

@media (max-width: 760px) {
    .topbar { min-height: 60px; padding: 0 16px; }
    .page-shell { width: calc(100% - 32px); padding: 28px 0 44px; }
    .account-name { display: none; }
    .page-heading { align-items: flex-start; flex-direction: column; margin-bottom: 22px; }
    .page-heading .button { width: 100%; }
    .summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
    .summary-item { min-height: 84px; padding: 10px; }
    .summary-item span { font-size: 10px; line-height: 1.25; }
    .summary-item strong { font-size: 23px; }
    .filter-bar { grid-template-columns: 1fr 1fr; }
    .search-field { grid-column: 1 / -1; }
    .button-filter { width: 100%; }
    .clear-link { justify-self: center; }
    .list-heading { display: none; }
    .material-row { grid-template-columns: 1fr auto; gap: 8px 10px; padding: 14px 12px; }
    .item-identity { grid-column: 1 / -1; }
    .item-category { grid-column: 1; }
    .item-status { grid-column: 1; }
    .item-action { grid-column: 2; grid-row: 2 / span 2; align-self: center; }
    .item-location { overflow-wrap: anywhere; }
    .login-layout { grid-template-columns: 1fr; min-height: 0; margin: 8px auto; }
    .login-panel { padding: 30px 22px; }
    .login-panel h1 { font-size: 32px; }
    .login-aside { display: none; }
    .auth-links { align-items: flex-start; flex-direction: column; }
    .message-page { margin: 8px auto; padding: 22px 18px; }
    .member-list-heading { display: none; }
    .member-row { grid-template-columns: 1fr; gap: 10px; padding: 14px 12px; }
    .consumable-list-heading { display: none; }
    .consumable-row { grid-template-columns: minmax(0, 1fr) auto; gap: 8px 10px; padding: 14px 12px; }
    .consumable-identity { grid-column: 1 / -1; }
    .consumable-stock, .consumable-location { grid-column: 1; }
    .consumable-actions { grid-column: 2; grid-row: 2 / span 2; justify-self: end; }
    .wishlist-list-heading { display: none; }
    .wishlist-row { grid-template-columns: 1fr auto; gap: 8px 10px; padding: 14px 12px; }
    .wishlist-identity { grid-column: 1 / -1; }
    .wishlist-quantity, .wishlist-requester { grid-column: 1; }
    .wishlist-row > div:nth-child(3) { grid-column: 1; }
    .wishlist-row > div:nth-child(5) { grid-column: 2; grid-row: 2 / span 3; align-self: center; justify-self: end; }
    .wishlist-filter { grid-template-columns: 1fr; }
    .page-heading > .button { width: 100%; }
    .dashboard-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
    .dashboard-stat { min-height: 82px; padding: 10px; }
    .dashboard-stat span { font-size: 10px; }
    .dashboard-grid { grid-template-columns: 1fr; gap: 10px; }
    .draft-fields { padding: 14px; }
    .copy-row { align-items: stretch; flex-direction: column; }
    .draft-modes a { flex: 1; padding-inline: 5px; text-align: center; }
    .data-form { padding: 17px; }
}