.shift-shell { position:relative; z-index:1; width:min(100%,760px); margin:0 auto; padding:calc(18px + env(safe-area-inset-top)) 16px 60px; }
.shift-header { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 0 18px; }
.shift-title { min-width:0; }
.shift-title .eyebrow { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.user-badge { padding:8px 11px; border:1px solid var(--line); border-radius:999px; color:var(--muted); background:var(--card); font-size:10px; font-weight:750; }
.shift-title h1 { margin:0; color:var(--ink); font-family:Furore,"Russo One",sans-serif; font-size:clamp(34px,9vw,52px); font-weight:400; line-height:1; letter-spacing:.025em; text-shadow:0 0 28px rgba(77,224,199,.42); }
.shift-subtitle { max-width:470px; margin:14px 0 22px; color:var(--muted); font-size:10px; line-height:1.6; }
.shift-report-test { margin-bottom:10px; padding:17px; border:1px solid rgba(77,224,199,.24); border-radius:20px; background:radial-gradient(circle at 100% 0,rgba(77,224,199,.17),transparent 13rem),var(--card); box-shadow:0 18px 48px rgba(0,0,0,.22); }
.shift-report-test[hidden] { display:none !important; }
.shift-report-test-head { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.shift-report-test-head h2 { margin:4px 0 0; font-size:20px; }
.shift-report-test-head > span { flex:none; padding:6px 9px; border:1px solid rgba(77,224,199,.2); border-radius:999px; color:#8de3d8; background:rgba(77,224,199,.08); font-size:8px; font-weight:800; }
.shift-report-test > p { margin:10px 0 13px; color:var(--muted); font-size:9px; line-height:1.5; }
.shift-report-test-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.shift-report-test-actions a { display:flex; min-height:48px; align-items:center; justify-content:center; gap:8px; border-radius:14px; color:white; text-decoration:none; font-size:12px; }
.shift-report-test-actions a.open { background:linear-gradient(145deg,#21b8a8,#08766f); }
.shift-report-test-actions a.close { background:linear-gradient(145deg,#5367d8,#29398d); }
.shift-report-test-actions span { font-size:15px; }
.shift-alerts { display:grid; gap:8px; margin:0 0 12px; }
.shift-alerts[hidden] { display:none !important; }
.shift-alert { position:relative; display:grid; min-height:68px; padding:11px 38px 11px 12px; grid-template-columns:40px minmax(0,1fr); align-items:center; gap:11px; overflow:hidden; border:1px solid var(--line); border-radius:17px; color:var(--ink); text-decoration:none; background:linear-gradient(145deg,rgba(31,23,42,.98),rgba(17,12,25,.99)); box-shadow:0 14px 34px rgba(0,0,0,.25); }
.shift-alert::after { position:absolute; top:50%; right:14px; color:#d9c7ff; font-size:19px; content:'›'; transform:translateY(-50%); }
.shift-alert-icon { display:grid; width:40px; height:40px; place-items:center; border-radius:13px; font-size:17px; font-weight:900; }
.shift-alert strong,.shift-alert small { display:block; }
.shift-alert strong { font-size:13px; }
.shift-alert small { margin-top:5px; color:var(--muted); font-size:9px; }
.shift-alert.tasks { border-color:rgba(255,193,77,.3); background:radial-gradient(circle at 0 50%,rgba(255,193,77,.1),transparent 10rem),linear-gradient(145deg,rgba(31,23,42,.98),rgba(17,12,25,.99)); }
.shift-alert.tasks .shift-alert-icon { color:#ffd477; background:rgba(255,193,77,.12); }
.shift-alert.tasks.overdue { border-color:rgba(255,120,150,.36); background:radial-gradient(circle at 0 50%,rgba(255,120,150,.11),transparent 10rem),linear-gradient(145deg,rgba(31,23,42,.98),rgba(17,12,25,.99)); }
.shift-alert.tasks.overdue .shift-alert-icon { color:#ff9daf; background:rgba(255,120,150,.12); }
.shift-alert.reviews { border-color:rgba(168,121,255,.32); background:radial-gradient(circle at 0 50%,rgba(168,121,255,.12),transparent 10rem),linear-gradient(145deg,rgba(31,23,42,.98),rgba(17,12,25,.99)); }
.shift-alert.reviews .shift-alert-icon { color:#c7a9ff; background:rgba(168,121,255,.12); }
.shift-actions { display:grid; gap:10px; }
.shift-actions[hidden] { display:none !important; }
.shift-action { position:relative; display:grid; min-height:78px; padding:13px 14px; grid-template-columns:42px minmax(0,1fr) auto; align-items:center; gap:12px; overflow:hidden; border:1px solid var(--line); border-radius:18px; color:var(--ink); text-decoration:none; background:linear-gradient(110deg,rgba(77,224,199,.07),rgba(3,27,34,.5)); box-shadow:0 10px 28px rgba(0,0,0,.12); }
.shift-action[hidden] { display:none !important; }
.shift-action.primary { --tool-color:#9bbcff; }
.shift-action.tasks { --tool-color:#ffd477; }
.shift-action.management { --tool-color:#8ef3bd; }
.shift-action.taskboard { --tool-color:#d6a4ff; }
.shift-action.consumables { --tool-color:#83e7db; }
.shift-action-icon { display:grid; width:42px; height:42px; place-items:center; border:1px solid rgba(77,224,199,.2); border-radius:13px; color:var(--tool-color,#83e7db); background:rgba(77,224,199,.07); }
.ui-icon { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.shift-action div { min-width:0; }
.shift-action small,.shift-action strong,.shift-action p { display:block; }
.shift-action small { color:#77d8cd; font-size:9px; font-weight:750; letter-spacing:.08em; text-transform:uppercase; }
.shift-action strong { margin-top:3px; font-size:15px; }
.shift-action p { margin:4px 0 0; color:var(--muted); font-size:10px; line-height:1.4; }
.shift-action:active { transform:scale(.988); }
.shift-consumables { margin:0 0 12px; overflow:hidden; border:1px solid rgba(77,224,199,.23); border-radius:20px; background:radial-gradient(circle at 100% 0,rgba(77,224,199,.13),transparent 16rem),var(--card); box-shadow:0 18px 48px rgba(0,0,0,.22); }
.shift-consumables > summary { display:grid; min-height:72px; padding:14px 16px; grid-template-columns:42px minmax(0,1fr) auto; align-items:center; gap:12px; list-style:none; cursor:pointer; }
.shift-consumables > summary::-webkit-details-marker { display:none; }
.shift-consumables > summary > span:nth-child(2) small,.shift-consumables > summary > span:nth-child(2) strong { display:block; }
.shift-consumables > summary > span:nth-child(2) small { color:#77d8cd; font-size:9px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.shift-consumables > summary > span:nth-child(2) strong { margin-top:4px; font-size:17px; }
.shift-consumables > summary > b { padding:7px 9px; border-radius:999px; color:#8ef3bd; background:rgba(69,213,139,.1); font-size:10px; }
.shift-consumables > summary > b.low { color:#ffd477; background:rgba(255,193,77,.12); }
.consumables-summary-icon { display:grid; width:42px; height:42px; place-items:center; border:1px solid rgba(77,224,199,.2); border-radius:14px; background:rgba(77,224,199,.09); font-size:19px; }
.consumables-body { display:grid; gap:10px; padding:0 14px 15px; border-top:1px solid rgba(77,224,199,.12); }
.consumables-toolbar { display:flex; align-items:end; gap:8px; padding-top:13px; }
.consumables-toolbar label { display:grid; min-width:0; flex:1; gap:5px; }
.consumables-toolbar label span { color:var(--muted); font-size:9px; font-weight:750; }
.consumables-toolbar select,.consumables-search-row input,.consumable-form input,.consumable-form select { width:100%; min-height:43px; padding:10px 11px; border:1px solid rgba(77,224,199,.22); border-radius:12px; color:var(--ink); background:#093a40; outline:none; }
.consumables-toolbar select:focus,.consumables-search-row input:focus,.consumable-form input:focus,.consumable-form select:focus { border-color:#4de0c7; box-shadow:0 0 0 3px rgba(77,224,199,.09); }
.consumables-toolbar option,.consumable-form option { color:var(--ink); background:#093a40; }
.consumables-add,.consumables-categories-button { min-height:43px; padding:10px 13px; border:0; border-radius:12px; color:white; background:linear-gradient(145deg,#21b8a8,#08766f); font-size:10px; font-weight:800; }
.consumables-categories-button { border:1px solid rgba(77,224,199,.22); color:#a7e9e1; background:rgba(77,224,199,.08); }
.consumables-add[hidden],.consumables-categories-button[hidden] { display:none !important; }
.consumables-search-row { display:flex; gap:8px; }
.consumables-search-row input { min-width:0; flex:1; }
.archive-toggle { display:flex; flex:none; align-items:center; gap:6px; padding:0 10px; border:1px solid var(--line); border-radius:12px; color:var(--muted); background:rgba(3,27,34,.34); font-size:10px; font-weight:750; }
.archive-toggle[hidden] { display:none !important; }
.archive-toggle input { width:16px; height:16px; accent-color:#21b8a8; }
.consumables-categories { display:flex; gap:6px; overflow-x:auto; padding:1px 0 3px; scrollbar-width:none; }
.consumables-categories::-webkit-scrollbar { display:none; }
.consumables-categories button { flex:none; padding:8px 10px; border:1px solid var(--line); border-radius:999px; color:var(--muted); background:rgba(3,27,34,.34); font-size:9px; font-weight:750; }
.consumables-categories button.active { border-color:rgba(77,224,199,.4); color:#e9fffb; background:rgba(33,184,168,.18); }
.consumables-status { min-height:0; color:var(--muted); font-size:9px; }
.consumables-status:empty { display:none; }
.consumables-status.success { color:#8ef3bd; }
.consumables-status.error { color:#ff9daf; }
.consumables-list { display:grid; gap:8px; }
.consumable-card { display:grid; grid-template-columns:72px minmax(0,1fr); gap:11px; padding:11px; border:1px solid var(--line); border-radius:16px; background:rgba(3,27,34,.38); }
.consumable-card.low { border-color:rgba(255,193,77,.24); background:linear-gradient(120deg,rgba(255,193,77,.07),rgba(3,27,34,.42)); }
.consumable-card.archived { opacity:.72; }
.consumable-photo { display:grid; width:72px; height:72px; place-items:center; overflow:hidden; border:1px solid rgba(77,224,199,.16); border-radius:14px; color:#77d8cd; background:linear-gradient(145deg,rgba(77,224,199,.09),rgba(3,27,34,.52)); font-size:24px; }
.consumable-photo img { width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .18s ease; }
.consumable-photo.loaded img { opacity:1; }
.consumable-info { min-width:0; }
.consumable-name-row { display:flex; align-items:start; justify-content:space-between; gap:7px; }
.consumable-name-row > div { min-width:0; }
.consumable-name-row small { color:var(--muted); font-size:8px; }
.consumable-name-row h3 { margin:4px 0 0; overflow-wrap:anywhere; font-size:13px; line-height:1.25; }
.stock-manage { width:29px; height:29px; flex:none; border:1px solid var(--line); border-radius:9px; color:#9fe8df; background:rgba(77,224,199,.08); font-size:12px; font-weight:900; letter-spacing:-1px; }
.consumable-stock { display:flex; align-items:center; gap:7px; margin-top:8px; }
.consumable-stock > strong { font-size:18px; line-height:1; }
.consumable-stock > strong small { color:var(--muted); font-size:8px; }
.consumable-stock > span:nth-child(2) { color:var(--muted); font-size:9px; }
.stock-state { margin-left:auto; padding:5px 7px; border-radius:999px; font-size:8px; font-weight:800; }
.stock-state.ok { color:#8ef3bd; background:rgba(69,213,139,.1); }
.stock-state.low { color:#ffd477; background:rgba(255,193,77,.12); }
.stock-state.archived { color:#b8c8c7; background:rgba(180,200,198,.09); }
.archive-reason { margin:7px 0 0; color:var(--muted); font-size:8px; line-height:1.35; }
.consumable-card-actions { display:flex; gap:6px; margin-top:9px; }
.consumable-card-actions button { min-height:31px; padding:7px 9px; border:1px solid var(--line); border-radius:9px; color:#bfe8e4; background:rgba(77,224,199,.07); font-size:8px; font-weight:800; }
.consumable-card-actions .stock-update,.consumable-card-actions .stock-restore { flex:1; color:white; border:0; background:linear-gradient(145deg,#21a99b,#106c68); }
body.modal-open { overflow:hidden; }
.consumable-modal[hidden] { display:none !important; }
.consumable-modal { position:fixed; inset:0; z-index:50; display:flex; align-items:flex-end; justify-content:center; padding:16px; }
.consumable-modal-backdrop { position:absolute; inset:0; background:rgba(0,12,16,.76); backdrop-filter:blur(7px); }
.consumable-modal-card { position:relative; width:min(100%,560px); max-height:min(86vh,760px); padding:17px; overflow-y:auto; border:1px solid rgba(77,224,199,.28); border-radius:22px 22px 18px 18px; background:linear-gradient(180deg,#0b4147,#05272e); box-shadow:0 28px 80px rgba(0,0,0,.55); }
.consumable-modal-head { display:flex; align-items:start; justify-content:space-between; gap:10px; margin-bottom:15px; }
.consumable-modal-head h2 { margin:4px 0 0; font-size:20px; }
.consumable-modal-head > button { display:grid; width:36px; height:36px; place-items:center; border:1px solid var(--line); border-radius:12px; color:#bfe8e4; background:rgba(77,224,199,.07); font-size:22px; }
.consumable-form { display:grid; gap:11px; }
.consumable-form > label,.consumable-form-grid label,.archive-box label { display:grid; gap:6px; }
.consumable-form label > span { color:#c8e4e1; font-size:10px; font-weight:750; }
.consumable-form label > span small { color:var(--muted); font-size:8px; font-weight:500; }
.consumable-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.modal-product { display:flex; align-items:center; gap:10px; padding:11px; border:1px solid var(--line); border-radius:14px; background:rgba(3,27,34,.35); }
.modal-product > span { font-size:23px; }
.modal-product small,.modal-product strong { display:block; }
.modal-product small { margin-bottom:3px; color:var(--muted); font-size:9px; }
.modal-product strong { font-size:13px; }
.form-hint { margin:0; color:var(--muted); font-size:9px; line-height:1.45; }
.photo-picker { position:relative; padding:12px; border:1px dashed rgba(77,224,199,.32); border-radius:13px; background:rgba(77,224,199,.05); }
.photo-picker input { position:absolute; width:1px; height:1px; opacity:0; }
.photo-picker b { margin-top:3px; color:#82e3d8; font-size:10px; }
.modal-primary,.modal-restore { min-height:46px; border:0; border-radius:13px; color:white; background:linear-gradient(145deg,#21b8a8,#08766f); font-size:11px; font-weight:850; }
.modal-primary:disabled,.modal-restore:disabled { opacity:.5; }
.archive-box { display:grid; gap:9px; margin-top:5px; padding-top:12px; border-top:1px solid rgba(255,120,150,.16); }
.archive-box button { min-height:42px; border:1px solid rgba(255,120,150,.23); border-radius:12px; color:#ff9daf; background:rgba(255,120,150,.08); font-size:10px; font-weight:800; }
.consumable-history-head { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:11px; border:1px solid var(--line); border-radius:13px; background:rgba(3,27,34,.35); }
.consumable-history-head strong { font-size:13px; }
.consumable-history-head span { color:var(--muted); font-size:9px; }
.consumable-history-list { display:grid; gap:7px; margin-top:9px; }
.consumable-history-list > div { display:flex; justify-content:space-between; gap:10px; padding:10px; border:1px solid var(--line); border-radius:12px; background:rgba(3,27,34,.28); }
.consumable-history-list span { display:grid; gap:3px; }
.consumable-history-list span:last-child { text-align:right; }
.consumable-history-list strong,.consumable-history-list b { font-size:9px; }
.consumable-history-list small { color:var(--muted); font-size:8px; }
.category-manager-list { display:flex; flex-wrap:wrap; gap:6px; }
.category-manager-list > div { display:flex; align-items:center; gap:6px; padding:8px 9px; border:1px solid var(--line); border-radius:999px; background:rgba(77,224,199,.06); }
.category-manager-list strong { font-size:9px; }
.category-manager-form { margin-top:14px; padding-top:14px; border-top:1px solid var(--line); }
.category-manager-fields { display:grid; grid-template-columns:76px minmax(0,1fr); gap:8px; }
.shift-dashboard { display:grid; gap:10px; margin-bottom:10px; }
.shift-dashboard[hidden] { display:none !important; }
.nearest-shift { display:block; padding:12px 14px; border:1px solid rgba(77,224,199,.22); border-radius:17px; background:linear-gradient(120deg,rgba(33,184,168,.15),rgba(5,44,50,.8)); box-shadow:0 14px 36px rgba(0,0,0,.16); }
.nearest-shift .eyebrow { color:#69ddcf; }
.nearest-shift-line { display:flex; min-width:0; margin-top:4px; align-items:baseline; justify-content:space-between; gap:10px; }
.nearest-shift h2 { min-width:0; margin:0; font-size:19px; white-space:nowrap; }
.nearest-shift strong,.nearest-shift span { display:block; }
.nearest-shift-meta { display:flex; min-width:0; align-items:baseline; justify-content:flex-end; gap:7px; text-align:right; white-space:nowrap; }
.nearest-shift strong { font-size:10px; }
.nearest-shift span { color:var(--muted); font-size:9px; }
.nearest-shift-line.empty { align-items:flex-start; }
.nearest-shift-line.empty .nearest-shift-meta { max-width:55%; white-space:normal; }
.shift-section-heading { margin:18px 0 0; }
.shift-section-heading h2 { margin:4px 0 0; font-size:18px; }
.shift-heading-row { display:flex; align-items:end; justify-content:space-between; gap:12px; }
.section-date,.schedule-source { padding:6px 9px; border:1px solid var(--line); border-radius:999px; color:#8de3d8; background:rgba(77,224,199,.08); font-size:10px; font-weight:800; }
.shift-today { margin-bottom:16px; }
.shift-today[hidden] { display:none !important; }
.shift-today-list { display:grid; gap:10px; margin-top:10px; }
.today-shift-card { padding:17px; border:1px solid rgba(77,224,199,.3); border-radius:20px; background:radial-gradient(circle at 100% 0,rgba(77,224,199,.2),transparent 15rem),linear-gradient(145deg,rgba(7,60,65,.96),rgba(4,35,42,.94)); box-shadow:0 20px 52px rgba(0,0,0,.26); }
.today-shift-head { display:flex; align-items:start; justify-content:space-between; gap:12px; }
.today-shift-head p { margin:0 0 5px; color:#69ddcf; font-size:12px; font-weight:800; }
.today-shift-head h3 { margin:0; font-family:Furore,"Russo One",sans-serif; font-size:22px; font-weight:400; }
.club-state { display:flex; flex:none; align-items:center; gap:6px; padding:7px 9px; border-radius:999px; font-size:11px; font-weight:800; }
.club-state i { width:7px; height:7px; border-radius:50%; }
.club-state.open { color:#8ef3bd; background:rgba(69,213,139,.12); }
.club-state.open i { background:#56df9c; box-shadow:0 0 10px #56df9c; }
.club-state.closed { color:#ff9daf; background:rgba(255,120,150,.11); }
.club-state.closed i { background:#ff7896; box-shadow:0 0 10px #ff7896; }
.today-colleagues { display:grid; gap:4px; margin:13px 0; padding:11px 12px; border:1px solid var(--line); border-radius:14px; background:rgba(3,27,34,.34); }
.today-colleagues small { color:var(--muted); font-size:10px; }
.today-colleagues strong { font-size:14px; }
.today-report-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.today-report { display:flex; min-height:54px; align-items:center; padding:11px 13px; border:1px solid var(--line); border-radius:14px; color:var(--ink); background:rgba(3,27,34,.42); text-decoration:none; }
.today-report span,.today-report small,.today-report strong { display:block; }
.today-report small { color:var(--muted); font-size:10px; }
.today-report strong { margin-top:4px; font-size:13px; }
.today-report.done { border-color:rgba(83,221,159,.25); background:rgba(83,221,159,.1); }
.today-report.progress { border-color:rgba(255,205,92,.24); background:rgba(255,205,92,.08); }
.today-report.idle { background:linear-gradient(145deg,rgba(33,184,168,.32),rgba(8,118,111,.24)); }
.today-bookings-head { display:flex; justify-content:space-between; gap:10px; margin:15px 0 7px; font-size:12px; }
.today-bookings-head span { color:var(--muted); }
.today-bookings { display:grid; gap:5px; }
.today-booking { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:8px; padding:10px; border-radius:11px; background:rgba(3,27,34,.42); font-size:11px; }
.today-booking strong { color:#69ddcf; }
.today-booking span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.today-booking b { color:var(--muted); white-space:nowrap; }
.today-booking-empty { padding:10px; border-radius:11px; color:#84c9bf; background:rgba(83,221,159,.07); font-size:11px; text-align:center; }
.upcoming-shift-list { display:grid; gap:7px; }
.upcoming-shift { display:flex; padding:12px 13px; align-items:center; justify-content:space-between; gap:10px; border:1px solid var(--line); border-radius:15px; background:var(--card); }
.upcoming-shift strong,.upcoming-shift span,.upcoming-shift small { display:block; }
.upcoming-shift strong { font-size:13px; }
.upcoming-shift span { margin-top:3px; color:var(--muted); font-size:10px; }
.upcoming-shift small { color:#69ddcf; font-size:11px; font-weight:800; white-space:nowrap; }
.shift-month-summary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.shift-month-summary div { padding:14px; border:1px solid var(--line); border-radius:16px; background:var(--card); }
.shift-month-summary span,.shift-month-summary strong { display:block; }
.shift-month-summary span { color:var(--muted); font-size:9px; }
.shift-month-summary strong { margin-top:5px; font-size:22px; }
.shift-schedule { margin:19px 0 12px; }
.week-navigation { display:grid; grid-template-columns:46px minmax(0,1fr) 46px; gap:7px; margin:10px 0 8px; }
.week-navigation button,.schedule-tabs button { border:1px solid var(--line); color:var(--ink); background:var(--card); }
.week-navigation button { min-height:46px; border-radius:14px; font-weight:800; }
.week-navigation > button:first-child,.week-navigation > button:last-child { font-size:23px; }
.week-navigation #currentWeek span,.week-navigation #currentWeek small { display:block; }
.week-navigation #currentWeek span { font-size:11px; }
.week-navigation #currentWeek small { margin-top:3px; color:var(--muted); font-size:7px; }
.schedule-tabs { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:5px; margin-bottom:8px; }
.schedule-tabs button { min-height:40px; padding:7px 5px; border-radius:11px; font-size:11px; font-weight:750; }
.schedule-tabs button.active { border-color:rgba(77,224,199,.34); background:linear-gradient(145deg,rgba(33,184,168,.42),rgba(8,118,111,.3)); }
.schedule-warning { padding:10px 12px; margin-bottom:8px; border-radius:12px; color:#ffd985; background:rgba(255,205,92,.1); font-size:9px; line-height:1.45; }
.schedule-warning[hidden] { display:none !important; }
.schedule-content { display:grid; gap:8px; }
.schedule-day { overflow:hidden; border:1px solid var(--line); border-radius:17px; background:var(--card); }
.schedule-day-head { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:12px 13px; border-bottom:1px solid var(--line); }
.schedule-day-head strong { font-size:14px; text-transform:capitalize; }
.schedule-day-head span { color:var(--muted); font-size:10px; }
.schedule-location { padding:10px 12px; }
.schedule-location + .schedule-location { border-top:1px solid rgba(77,224,199,.1); }
.schedule-location h3 { margin:0 0 7px; color:#8de3d8; font-size:12px; }
.schedule-shift { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:7px 0; }
.schedule-shift + .schedule-shift { border-top:1px dashed rgba(77,224,199,.1); }
.schedule-shift span,.schedule-shift strong,.schedule-shift small { display:block; }
.schedule-shift strong { font-size:12px; }
.schedule-shift small { margin-top:2px; color:var(--muted); font-size:10px; }
.schedule-shift > b { color:#69ddcf; font-size:12px; white-space:nowrap; }
.schedule-shift.mine { margin:0 -6px; padding:8px 6px; border-radius:9px; background:rgba(77,224,199,.08); }
.schedule-shift.free strong,.schedule-shift.free > b { color:#ffd985; }
.shift-history { margin:12px 0 18px; border:1px solid var(--line); border-radius:18px; background:var(--card); }
.shift-history > summary { display:flex; min-height:66px; padding:14px 15px; align-items:center; justify-content:space-between; gap:12px; cursor:pointer; list-style:none; }
.shift-history > summary::-webkit-details-marker,.history-item > summary::-webkit-details-marker { display:none; }
.shift-history > summary span,.shift-history > summary small,.shift-history > summary strong { display:block; }
.shift-history > summary small { color:#89dfd4; font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.shift-history > summary strong { margin-top:4px; font-size:16px; }
.shift-history > summary > b { display:grid; min-width:29px; height:29px; place-items:center; border-radius:50%; color:#69ddcf; background:rgba(77,224,199,.1); font-size:10px; }
.shift-history-list { display:grid; gap:6px; padding:0 10px 10px; }
.history-item { border:1px solid rgba(77,224,199,.12); border-radius:13px; background:rgba(3,27,34,.34); }
.history-item > summary { display:grid; grid-template-columns:31px minmax(0,1fr) auto; align-items:center; gap:9px; padding:10px; cursor:pointer; list-style:none; }
.history-action { display:grid; width:31px; height:31px; place-items:center; border-radius:10px; font-weight:900; }
.history-action.open { color:#8ef3bd; background:rgba(83,221,159,.1); }
.history-action.close { color:#aebcff; background:rgba(99,117,220,.14); }
.history-item summary span strong,.history-item summary span small { display:block; }
.history-item summary span strong { overflow:hidden; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.history-item summary span small { margin-top:3px; color:var(--muted); font-size:10px; }
.history-state { font-size:12px; }
.history-state.done { color:#78e9ad; }
.history-state.progress { color:#ffd985; }
.history-details { padding:0 11px 11px 50px; }
.history-details p { margin:4px 0; color:var(--muted); font-size:10px; }
.history-answers { display:grid; gap:5px; margin-top:8px; }
.history-answers div { padding:8px; border-radius:9px; background:rgba(77,224,199,.06); }
.history-answers small,.history-answers strong { display:block; }
.history-answers small { color:var(--muted); font-size:10px; }
.history-answers strong { margin-top:3px; font-size:11px; }
.shift-empty { padding:14px; border:1px dashed var(--line); border-radius:15px; color:var(--muted); font-size:10px; text-align:center; }
.error-card { padding:16px; border:1px dashed var(--line); border-radius:18px; color:var(--danger); background:rgba(255,120,150,.08); font-size:11px; text-align:center; }
#shiftError { margin-top:12px; }
.shift-dashboard { gap:10px; margin:16px 0 12px; }
.shift-dashboard > .shift-section-heading { margin:0; }
.shift-dashboard-grid { display:grid; grid-template-columns:1fr; gap:9px; }
.shift-dashboard-detail { display:grid; gap:8px; padding:0; border:0; background:transparent; box-shadow:none; }
.shift-dashboard-detail[hidden] { display:none !important; }
.compact-heading { display:flex; align-items:end; justify-content:space-between; gap:10px; }
.compact-heading strong { font-size:13px; }
.compact-heading span { color:var(--muted); font-size:9px; }
.nearest-shift { min-height:0; }
.shift-schedule { margin:16px 0 12px; overflow:hidden; border:1px solid var(--line); border-radius:18px; background:rgba(5,44,50,.68); box-shadow:0 10px 28px rgba(0,0,0,.1); }
.shift-schedule > summary { display:grid; min-height:74px; padding:13px 14px; grid-template-columns:42px minmax(0,1fr) auto; align-items:center; gap:12px; list-style:none; cursor:pointer; }
.shift-schedule > summary::-webkit-details-marker { display:none; }
.schedule-summary-icon { display:grid; width:42px; height:42px; place-items:center; border:1px solid rgba(77,224,199,.18); border-radius:13px; color:#8de3d8; background:rgba(77,224,199,.07); }
.schedule-summary-title small,.schedule-summary-title strong,.schedule-summary-title b { display:block; }
.schedule-summary-title small { color:#77d8cd; font-size:9px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.schedule-summary-title strong { margin-top:4px; font-size:16px; }
.schedule-summary-title b { margin-top:4px; color:var(--muted); font-size:10px; font-weight:650; }
.schedule-summary-side { display:grid; justify-items:end; gap:4px; }
.schedule-summary-side > b { color:#bfe8e4; font-size:10px; }
.schedule-summary-side > small { color:#69ddcf; font-size:8px; font-weight:850; }
.schedule-summary-side > i { color:#8de3d8; font-size:16px; font-style:normal; transition:transform .18s ease; }
.shift-schedule[open] .schedule-summary-side > i { transform:rotate(180deg); }
.schedule-body { padding:0 13px 13px; border-top:1px solid rgba(77,224,199,.12); }
.shift-tools-heading { margin:20px 0 10px; }
.shift-actions { gap:8px; }
.shift-action { min-height:78px; padding:13px 14px; border-radius:18px; box-shadow:0 10px 28px rgba(0,0,0,.12); }
.shift-action > div { min-width:0; flex:1; }
.shift-action strong { font-size:15px; }
.shift-action p { margin-top:4px; font-size:10px; }
.shift-action-status { color:#92c9c3; font-size:10px; white-space:nowrap; }
.shift-action-status.warning { padding:6px 8px; border-radius:999px; color:#ffe09a; background:rgba(255,193,77,.14); }
.shift-actions.employee .shift-action { min-height:62px; padding:10px 12px; grid-template-columns:36px minmax(0,1fr) auto; gap:10px; border-radius:16px; }
.shift-actions.employee .shift-action-icon { width:36px; height:36px; border-radius:11px; }
.shift-actions.employee .shift-action-icon .ui-icon { width:19px; height:19px; }
.shift-actions.employee .shift-action small { font-size:8px; }
.shift-actions.employee .shift-action strong { margin-top:2px; font-size:13px; }
.shift-actions.employee .shift-action p { display:none; }
.shift-actions.employee .shift-action-status { font-size:9px; }
.shift-history { margin-top:14px; box-shadow:0 10px 28px rgba(0,0,0,.1); }
@media(max-width:640px) {
  .shift-dashboard-grid { grid-template-columns:1fr; }
}
@media(max-width:420px) {
  .shift-header { position:relative; display:block; }
  .shift-header .user-badge { position:absolute; top:0; right:0; max-width:110px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .shift-title .eyebrow { padding-right:120px; }
  .shift-title h1 { font-size:31px; }
  .schedule-tabs { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .today-report-grid { grid-template-columns:1fr; }
  .consumables-toolbar { align-items:stretch; flex-direction:column; }
  .consumables-add,.consumables-categories-button { width:100%; }
  .consumable-card { grid-template-columns:62px minmax(0,1fr); }
  .consumable-photo { width:62px; height:62px; }
  .shift-action { grid-template-columns:40px minmax(0,1fr) auto; gap:10px; padding:12px; }
  .shift-action-icon { width:40px; height:40px; }
  .shift-action strong { font-size:14px; }
  .shift-action p { font-size:9px; }
  .shift-action-status { font-size:9px; }
  .shift-schedule > summary { grid-template-columns:40px minmax(0,1fr) auto; padding:13px; gap:10px; }
  .schedule-summary-icon { width:40px; height:40px; }
  .schedule-summary-title strong { font-size:14px; }
  .nearest-shift-line { gap:7px; }
  .nearest-shift h2 { font-size:17px; }
  .nearest-shift-meta { gap:5px; }
  .nearest-shift strong { font-size:9px; }
  .nearest-shift span { font-size:8px; }
}

/* Graphite violet theme: hierarchy comes from surface depth, not module colors. */
.shift-title h1 { text-shadow:0 0 28px rgba(168,121,255,.34); }
.user-badge { background:rgba(18,13,26,.92); box-shadow:inset 0 1px rgba(255,255,255,.025); }
.shift-report-test { border-color:var(--line-strong); background:radial-gradient(circle at 100% 0,rgba(168,121,255,.13),transparent 14rem),linear-gradient(145deg,rgba(33,24,44,.98),rgba(18,13,26,.99)); box-shadow:0 20px 52px rgba(0,0,0,.32),inset 0 1px rgba(255,255,255,.025); }
.shift-report-test-head > span,.section-date,.schedule-source { border-color:rgba(168,121,255,.24); color:#c7a9ff; background:rgba(168,121,255,.1); }
.shift-action,.shift-action.primary,.shift-action.tasks,.shift-action.management,.shift-action.taskboard,.shift-action.consumables { --tool-color:#c7a9ff; --tool-rgb:168,121,255; border-color:var(--line); background:linear-gradient(110deg,rgba(33,24,44,.98),rgba(18,13,26,.99)); box-shadow:0 14px 34px rgba(0,0,0,.25),inset 0 1px rgba(255,255,255,.025); }
.shift-action-icon { border-color:rgba(168,121,255,.25); background:rgba(168,121,255,.1); box-shadow:inset 0 0 20px rgba(168,121,255,.035); }
.shift-action small,.shift-action-status { color:var(--tool-color); }
.nearest-shift { border-color:var(--line-strong); background:radial-gradient(circle at 0 0,rgba(168,121,255,.11),transparent 15rem),linear-gradient(145deg,rgba(33,24,44,.98),rgba(18,13,26,.99)); box-shadow:0 18px 44px rgba(0,0,0,.3),inset 0 1px rgba(255,255,255,.025); }
.nearest-shift .eyebrow,.today-shift-head p,.upcoming-shift small { color:#c7a9ff; }
.today-shift-card { border-color:var(--line-strong); background:radial-gradient(circle at 100% 0,rgba(168,121,255,.13),transparent 16rem),linear-gradient(145deg,rgba(33,24,44,.98),rgba(18,13,26,.99)); box-shadow:0 22px 58px rgba(0,0,0,.36),inset 0 1px rgba(255,255,255,.03); }
.today-colleagues,.today-report,.today-booking { border-color:var(--line); background:var(--card-3); }
.upcoming-shift,.shift-month-summary div { background:linear-gradient(145deg,rgba(31,23,42,.97),rgba(17,12,25,.98)); box-shadow:inset 0 1px rgba(255,255,255,.02); }
.shift-schedule { border-color:var(--line-strong); background:linear-gradient(145deg,rgba(31,23,42,.98),rgba(17,12,25,.99)); box-shadow:0 16px 40px rgba(0,0,0,.27),inset 0 1px rgba(255,255,255,.025); }
.schedule-summary-icon { border-color:rgba(168,121,255,.25); color:#c7a9ff; background:rgba(168,121,255,.1); }
.schedule-body { border-top-color:var(--line); }
.schedule-day { background:var(--card-3); }
.week-navigation button,.schedule-tabs button { background:var(--card-3); }
.schedule-tabs button.active { border-color:rgba(168,121,255,.28); color:white; background:rgba(168,121,255,.18); }
.shift-history { border-color:var(--line); background:linear-gradient(145deg,rgba(27,20,37,.96),rgba(15,10,22,.98)); box-shadow:0 14px 34px rgba(0,0,0,.24); }
.shift-history > summary small,.shift-history > summary > b { color:#c7a9ff; }
.shift-history > summary > b { background:rgba(168,121,255,.1); }
.shift-consumables { border-color:var(--line-strong); background:radial-gradient(circle at 100% 0,rgba(168,121,255,.1),transparent 16rem),linear-gradient(145deg,rgba(31,23,42,.98),rgba(17,12,25,.99)); }
.shift-consumables > summary > span:nth-child(2) small,.schedule-summary-title small,.schedule-summary-side > small,.schedule-summary-side > i { color:#c7a9ff; }
.consumables-summary-icon { border-color:rgba(168,121,255,.24); color:#c7a9ff; background:rgba(168,121,255,.1); }
.consumables-body,.schedule-body { border-top-color:var(--line); }
.consumables-toolbar select,.consumables-search-row input,.consumable-form input,.consumable-form select { border-color:var(--line); background:var(--card-2); }
.consumables-toolbar select:focus,.consumables-search-row input:focus,.consumable-form input:focus,.consumable-form select:focus { border-color:var(--accent); box-shadow:0 0 0 3px rgba(168,121,255,.1); }
.consumables-toolbar option,.consumable-form option { background:var(--card-2); }
.consumables-categories-button,.archive-toggle,.consumables-categories button,.stock-manage,.consumable-card-actions button,.consumable-modal-head > button { border-color:var(--line); color:#d9c7ff; background:var(--card-3); }
.consumables-categories button.active { border-color:rgba(168,121,255,.36); color:#f4ebff; background:rgba(168,121,255,.14); }
.archive-toggle input { accent-color:var(--accent); }
.photo-picker { border-color:rgba(168,121,255,.3); background:rgba(168,121,255,.06); }
.photo-picker b { color:#c7a9ff; }
.category-manager-list > div { background:rgba(168,121,255,.07); }
.consumable-photo { color:#c7a9ff; }
.today-report.idle,.shift-report-test-actions a.open { background:linear-gradient(145deg,var(--cta),var(--cta-dark)); box-shadow:0 10px 26px rgba(39,203,184,.18); }
.shift-report-test-actions a.close { background:linear-gradient(145deg,var(--accent),var(--accent-dark)); box-shadow:0 10px 26px rgba(112,70,217,.2); }
.today-booking strong,.schedule-location h3,.schedule-shift > b { color:#c7a9ff; }
.schedule-location + .schedule-location,.schedule-shift + .schedule-shift { border-color:var(--line); }
.schedule-shift.mine { background:rgba(168,121,255,.09); }
.history-item { border-color:var(--line); background:var(--card-3); }
.history-answers div { background:rgba(168,121,255,.07); }

.owner-operations { margin:0 0 18px; }
.owner-operations[hidden] { display:none !important; }
.owner-operations-heading { margin-top:0; }
.owner-operation-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:11px; }
.owner-operation-tile { position:relative; min-height:96px; padding:13px; overflow:hidden; border:1px solid var(--line); border-radius:18px; color:var(--ink); text-align:left; text-decoration:none; background:linear-gradient(145deg,rgba(33,24,44,.98),rgba(18,13,26,.99)); box-shadow:0 14px 34px rgba(0,0,0,.25),inset 0 1px rgba(255,255,255,.025); }
.owner-operation-tile::after { position:absolute; right:-22px; bottom:-35px; width:88px; height:88px; border-radius:50%; background:var(--operation-glow,rgba(168,121,255,.2)); filter:blur(15px); content:""; }
.owner-operation-tile small,.owner-operation-tile strong,.owner-operation-tile span { position:relative; z-index:1; display:block; }
.owner-operation-tile small { color:var(--operation-color,#c7a9ff); font-size:9px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.owner-operation-tile strong { margin-top:7px; font-size:25px; line-height:1; }
.owner-operation-tile span { margin-top:7px; color:var(--muted); font-size:9px; }
.owner-operation-tile.opened { --operation-color:#8ef3bd; --operation-glow:rgba(69,213,139,.24); }
.owner-operation-tile.late { --operation-color:#ffd477; --operation-glow:rgba(255,193,77,.22); }
.owner-operation-tile.tasks { --operation-color:#9bbcff; --operation-glow:rgba(83,103,216,.25); }
.owner-operation-tile.reviews { --operation-color:#d6a4ff; --operation-glow:rgba(168,121,255,.25); }
.owner-operation-tile.active { border-color:rgba(199,169,255,.46); background:linear-gradient(145deg,rgba(42,31,57,.99),rgba(22,16,31,.99)); }
.owner-operation-detail { display:grid; gap:7px; margin-top:8px; padding:13px; border:1px solid var(--line-strong); border-radius:18px; background:linear-gradient(145deg,rgba(31,23,42,.98),rgba(17,12,25,.99)); box-shadow:0 16px 40px rgba(0,0,0,.25); }
.owner-operation-detail[hidden] { display:none !important; }
.owner-detail-head { display:flex; min-height:30px; align-items:center; justify-content:space-between; gap:10px; }
.owner-detail-head strong { font-size:13px; }
.owner-detail-head span,.owner-detail-head a { color:#c7a9ff; font-size:9px; font-weight:800; text-decoration:none; }
.owner-club-row { display:grid; min-height:48px; padding:8px 9px; grid-template-columns:27px minmax(0,1fr) auto; align-items:center; gap:8px; border-radius:11px; background:var(--card-3); }
.owner-club-row > i,.owner-task-row > i { display:grid; width:27px; height:27px; place-items:center; border-radius:9px; font-size:11px; font-style:normal; font-weight:900; }
.owner-club-row span strong,.owner-club-row span small { display:block; }
.owner-club-row span strong { font-size:11px; }
.owner-club-row span small { margin-top:2px; color:var(--muted); font-size:8px; }
.owner-club-row > b { color:var(--muted); font-size:8px; text-align:right; }
.owner-club-row.done > i { color:#8ef3bd; background:rgba(69,213,139,.11); }
.owner-club-row.late > i,.owner-club-row.progress > i { color:#ffd477; background:rgba(255,193,77,.11); }
.owner-club-row.waiting > i { color:#c7a9ff; background:rgba(168,121,255,.1); }
.owner-club-row.missing > i { color:#ff9daf; background:rgba(255,120,150,.1); }
.owner-club-row.missing > b { color:#ff9daf; }
.owner-task-group { overflow:hidden; border:1px solid var(--line); border-radius:13px; background:var(--card-3); }
.owner-task-group-head { display:grid; min-height:55px; padding:10px 11px; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:9px; }
.owner-task-group-head span strong,.owner-task-group-head span small { display:block; }
.owner-task-group-head span strong { font-size:11px; }
.owner-task-group-head span small { margin-top:3px; color:var(--muted); font-size:8px; }
.owner-task-group-head > b { color:#c7a9ff; font-size:11px; }
.owner-task-clubs { display:grid; gap:4px; padding:0 7px 7px; border-top:1px solid var(--line); }
.owner-task-row { display:grid; min-height:45px; padding:7px; grid-template-columns:27px minmax(0,1fr) auto; align-items:center; gap:7px; border-radius:9px; color:inherit; background:rgba(168,121,255,.045); text-decoration:none; }
.owner-task-row span strong,.owner-task-row span small { display:block; }
.owner-task-row span strong { font-size:10px; }
.owner-task-row span small { margin-top:2px; color:var(--muted); font-size:8px; }
.owner-task-row > b { color:#c7a9ff; font-size:8px; }
.owner-task-row.completed > i { color:#8ef3bd; background:rgba(69,213,139,.1); }
.owner-task-row.progress > i { color:#9bbcff; background:rgba(83,103,216,.13); }
.owner-task-row.overdue > i { color:#ff9daf; background:rgba(255,120,150,.1); }
.owner-task-row.pending > i,.owner-task-row.skipped > i { color:var(--muted); background:rgba(184,175,197,.08); }
.owner-detail-empty,.owner-detail-copy { margin:0; padding:12px; border-radius:11px; color:var(--muted); background:var(--card-3); font-size:10px; text-align:center; }
.owner-detail-link { display:grid; min-height:43px; place-items:center; border:1px solid rgba(168,121,255,.22); border-radius:12px; color:#e4d8ff; background:rgba(168,121,255,.12); font-size:10px; font-weight:800; text-decoration:none; }

.today-report.open.idle { border-color:rgba(39,203,184,.42); background:linear-gradient(145deg,#28cbb8,#0d7f73); box-shadow:0 10px 26px rgba(39,203,184,.2); }
.today-report.close.idle { border-color:rgba(168,121,255,.42); background:linear-gradient(145deg,#8060dc,#5033a6); box-shadow:0 10px 26px rgba(112,70,217,.22); }
.today-report.idle small,.today-report.idle strong { color:#fff; }
.today-report.idle small { opacity:.78; }
.today-report.open.done { border-color:rgba(83,221,159,.28); background:linear-gradient(145deg,rgba(83,221,159,.13),rgba(17,12,25,.96)); }
.today-report.close.done { border-color:rgba(142,160,255,.28); background:linear-gradient(145deg,rgba(99,117,220,.16),rgba(17,12,25,.96)); }
.today-report.open.progress { border-color:rgba(39,203,184,.35); }
.today-report.close.progress { border-color:rgba(168,121,255,.35); background:rgba(168,121,255,.1); }
.today-report.open:not(.idle) small { color:#8ef3bd; }
.today-report.close:not(.idle) small { color:#bfc9ff; }
.today-tasks { margin-top:10px; padding-top:10px; border-top:1px solid var(--line); }
.today-tasks-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:7px; }
.today-tasks-head span { color:var(--muted); font-size:10px; }
.today-tasks-head b { color:#c7a9ff; font-size:11px; }
.today-task-list { display:grid; gap:5px; }
.today-task { display:grid; min-height:49px; padding:8px 9px; grid-template-columns:29px minmax(0,1fr) auto; align-items:center; gap:8px; border:1px solid var(--line); border-radius:12px; color:var(--ink); background:var(--card-3); text-decoration:none; }
.today-task > i { display:grid; width:29px; height:29px; place-items:center; border-radius:9px; color:#c7a9ff; background:rgba(168,121,255,.1); font-size:11px; font-style:normal; font-weight:900; }
.today-task span strong,.today-task span small { display:block; }
.today-task span strong { font-size:10px; }
.today-task span small { margin-top:3px; color:var(--muted); font-size:8px; }
.today-task > b { color:#c7a9ff; font-size:17px; }
.today-task.completed > i { color:#8ef3bd; background:rgba(69,213,139,.1); }
.today-task.progress > i { color:#9bbcff; background:rgba(83,103,216,.13); }
.today-task.overdue { border-color:rgba(255,120,150,.25); }
.today-task.overdue > i { color:#ff9daf; background:rgba(255,120,150,.1); }
.today-task.readonly > b { visibility:hidden; }

@media(max-width:390px) {
  .owner-operation-tile { min-height:88px; padding:11px; }
  .owner-operation-tile strong { font-size:22px; }
  .owner-club-row { grid-template-columns:26px minmax(0,1fr); }
  .owner-club-row > b { grid-column:2; text-align:left; }
}
