:root{color-scheme:light;--red:#b52432;--red-dark:#891c27;--ink:#202c3c;--muted:#617084;--line:#dce2e9;--surface:#fff;--bg:#f3f5f8;--radius:12px;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;font-size:16px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);line-height:1.5}header{background:var(--surface);border-bottom:1px solid var(--line);padding:18px max(24px,calc((100vw - 1400px)/2));display:flex;align-items:center;justify-content:space-between;gap:20px}a{color:var(--red);text-underline-offset:3px}.brand{text-decoration:none;font-size:1.5rem;font-weight:800;white-space:nowrap}.brand span{color:var(--ink);font-size:1rem;font-weight:650;margin-left:10px}nav{display:flex;gap:20px;align-items:center;flex-wrap:wrap}nav form{margin:0}nav span{color:var(--muted);font-size:.88rem}main{max-width:1400px;padding:24px;margin:0 auto}h1{font-size:1.8rem;letter-spacing:-.035em;margin:4px 0 20px}h2{font-size:1.2rem;margin:0 0 12px}p{margin:0 0 16px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px;margin-bottom:24px}.notice,.error{padding:14px 18px;border-radius:8px;border:1px solid #cbdbe9;background:#edf5fb;margin-bottom:20px}.error{background:#fff0f1;border-color:#e7bbc1;color:#861a27}.muted,small{color:var(--muted);font-size:.88rem}small{display:block}label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:.88rem;margin-bottom:16px;min-width:0}input,select,textarea{font:inherit;font-size:1rem;font-weight:400;max-width:100%;width:100%;border:1px solid #aebaca;border-radius:7px;background:#fff;color:var(--ink);padding:10px 12px;min-height:44px}textarea{resize:vertical}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #2c78be;outline-offset:3px}input[readonly],select:disabled{background:#f0f2f5;color:#536174}button,.button{font:inherit;font-weight:650;display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 18px;background:var(--red);color:#fff;border:1px solid var(--red);border-radius:7px;text-decoration:none;cursor:pointer;gap:8px}button:hover,.button:hover{background:var(--red-dark)}button:disabled{opacity:.5;cursor:not-allowed}.secondary{background:#fff;color:var(--ink);border-color:var(--line)}.secondary:hover{background:#f0f2f5}.danger{background:#8a1422}.inline,.toolbar,.actions{display:flex;gap:16px;align-items:flex-end;flex-wrap:wrap}.inline label{margin-bottom:0}.inline{margin-bottom:16px}.toolbar{justify-content:space-between}.toolbar form{margin:0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}.edit-form{max-width:880px}.login{max-width:460px;margin:40px auto}.login button{width:100%}.check{flex-direction:row;align-items:center;font-weight:400;min-height:44px}.check input{width:20px;min-height:20px;height:20px;flex:none}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:#fff}table{width:100%;border-collapse:collapse;text-align:left}th,td{padding:14px 18px;border-bottom:1px solid var(--line);vertical-align:top}thead th{background:#edf0f5;font-size:.82rem;letter-spacing:.03em}tbody tr:last-child>td,tbody tr:last-child>th{border-bottom:0}.calendar>tbody>tr>th{width:120px;background:#fafbfc}.calendar th strong,.calendar th span{display:block}.sunday>th strong{color:var(--red)}.shift{display:grid;grid-template-columns:minmax(120px,1.2fr) 120px minmax(150px,1.5fr) 150px;gap:18px;padding:12px 0;align-items:center;border-bottom:1px solid #edf0f5}.shift:last-child{border-bottom:0}.badge{display:inline-block;padding:5px 9px;border-radius:20px;background:#edf0f5;color:var(--muted);font-size:.78rem}.small-link{display:block;font-size:.82rem;padding-top:10px}.small{font-size:.85rem;padding:7px 14px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-top:24px}.rule{border:1px solid var(--line);padding:18px;border-radius:8px}.rule p{margin:10px 0 16px}.user-list{margin-top:24px}.user-row{border-top:1px solid var(--line);padding-top:16px;align-items:center}.user-row strong{min-width:180px}.actions{align-items:center;margin-top:24px}details{border-top:1px solid var(--line);margin-top:28px;padding-top:18px}summary{cursor:pointer;padding:8px 0;color:var(--red);min-height:44px}footer{padding:24px;text-align:center;color:var(--muted);font-size:.8rem}
@media(max-width:900px){header{padding:16px 20px;align-items:flex-start}.shift{grid-template-columns:1fr 1fr}.shift>div:last-child{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.small-link{padding:8px 0}nav{gap:12px}nav span{display:none}}
@media(max-width:600px){header{flex-direction:column;gap:12px;padding:14px 16px}nav{width:100%;justify-content:space-between;font-size:.9rem}.brand{font-size:1.3rem}main{padding:16px}h1{font-size:1.5rem}.panel{padding:18px;margin-bottom:18px}.form-grid{grid-template-columns:1fr}.toolbar,.toolbar form,.inline{align-items:stretch}.toolbar form{width:100%}.toolbar label{flex:1 1 100%}.toolbar button,.toolbar>.button{width:100%}.calendar,.calendar tbody,.calendar tr,.calendar td,.calendar th{display:block;width:100%}.calendar thead{display:none}.calendar>tbody>tr>th{width:100%;display:flex;gap:10px;padding:12px 14px;background:#eaf0f5;border-bottom:1px solid var(--line)}.calendar td{padding:0 14px 10px}.calendar td>.muted{display:block;padding-top:12px}.calendar>tbody>tr{border-bottom:2px solid var(--line)}.shift{gap:10px;padding:16px 0;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.shift>div{overflow-wrap:anywhere}.shift>div:nth-child(3){grid-column:1/-1}.shift>div:last-child{grid-column:1/-1}.shift .button{flex:1}.shift .small-link{padding:12px}.cards{grid-template-columns:1fr}.user-row{gap:12px}.user-row strong{width:100%}.login{margin:20px auto}.actions>button{flex:1}.check{font-size:.9rem}}

/* Griglia desktop: una fascia per riga e una colonna per ruolo. */
.roster-wrap { max-height: 72vh; overflow: auto; }
.roster { width: 100%; border-collapse: separate; border-spacing: 0; font-size: .81rem; }
.roster th, .roster td { padding: 7px 10px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); vertical-align: middle; }
.roster thead th { position: sticky; top: 0; z-index: 3; padding: 10px; background: #e9eef4; white-space: nowrap; font-size: .76rem; }
.roster .roster-date { position: sticky; left: 0; min-width: 102px; width: 102px; background: #f5f7fa; z-index: 2; white-space: nowrap; }
.roster thead .roster-date { z-index: 4; background: #e9eef4; }
.roster .weekday { background: #f5f7fa; font-size: .72rem; font-weight: 650; }
.roster .activity-code, .roster .time-cell { background: #fffcec; white-space: nowrap; }
.roster .role-column { min-width: 165px; white-space: normal; }
.roster .person-cell { min-width: 165px; padding: 3px 6px; }
.roster .time-cell small { font-size: .7rem; }
.roster-day + .roster-day tr:first-child > * { border-top: 2px solid #bdc8d5; }
.roster-sunday .roster-date, .roster-sunday .weekday { color: var(--red); }
.roster tbody tr:hover td { background-color: #f0f5fb; }
.person-entry { display: block; padding: 5px 6px; overflow-wrap: anywhere; }
.person-entry + .person-entry { border-top: 1px dashed var(--line); }
.person-edit { color: #225887; text-decoration: none; border-radius: 4px; }
.person-edit:hover { background: #e2eefb; text-decoration: underline; }
.unassigned { color: #8a5b10; background: #fff8e7; }
.not-applicable { display: block; padding: 5px 6px; color: #a7b0bc; }
.roster-add { display: inline-block; padding: 5px 2px; white-space: nowrap; font-size: .76rem; }
.mobile-roster { display: none; }

/* Telefono: gli stessi turni diventano riquadri, senza scorrimento laterale. */
@media (max-width: 700px) {
    .roster-wrap { display: none; }
    .mobile-roster { display: block; }
    .mobile-day { margin-bottom: 22px; }
    .mobile-day-heading { display:flex; align-items:center; gap:12px; margin:0 0 5px; padding:9px 14px; background:#fff; border:1px solid var(--line); border-left:5px solid var(--red); border-radius:8px; color:var(--ink); font-size:1.16rem; font-weight:700; font-variant-numeric:tabular-nums; }
    .mobile-day-heading:not(:has([data-column]:not([hidden]))) { display:none; }
    .mobile-day-heading span { color:#435366; font-size:.86rem; }
    .sunday-heading, .sunday-heading span { color: var(--red); }
    .mobile-empty { padding: 10px 0; color: var(--muted); font-size: .85rem; }
    .mobile-shift { background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 14px; margin-bottom: 10px; }
    .mobile-shift-heading { display: flex; justify-content: space-between; gap: 12px; align-items: center; }
    .mobile-shift-heading strong { color: var(--red); }
    .mobile-shift-heading b { font-size: .94rem; white-space: nowrap; }
    .mobile-description { margin: 3px 0 8px; color: var(--muted); font-size: .8rem; }
    .mobile-shift-meta { display: flex; flex-wrap: wrap; gap: 5px 14px; font-size: .76rem; color: var(--muted); }
    .mobile-people { margin: 10px 0 0; }
    .mobile-people > div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); align-items: center; gap: 8px; border-top: 1px solid #edf0f5; padding: 5px 0; }
    .mobile-people dt { font-size: .78rem; color: var(--muted); overflow-wrap: anywhere; }
    .mobile-people dd { margin: 0; min-width: 0; font-size: .88rem; }
    .mobile-people .person-entry { min-height: 44px; display: flex; align-items: center; justify-content: space-between; gap: 6px; }
    .mobile-people .person-entry span { color: #71849a; font-size: 1.25rem; }
    .mobile-add { display: flex; justify-content: center; align-items: center; min-height: 44px; border-top: 1px solid var(--line); margin-top: 5px; padding-top: 5px; text-decoration: none; font-size: .85rem; }
}

/* Calendario a larghezza piena e preferenze delle colonne. */
.wide-layout main { max-width: none; width: 100%; }
.wide-layout header { padding-left: 24px; padding-right: 24px; }
.column-picker { margin: 0 0 16px; padding: 0; border: 1px solid var(--line); border-radius: 9px; background: #fff; }
.column-picker summary { padding: 10px 16px; color: var(--ink); font-size: .88rem; font-weight: 650; }
.column-picker fieldset { border: 0; margin: 4px 16px 0; padding: 0; }
.column-picker legend { font-size: .8rem; color: var(--muted); margin-bottom: 10px; }
.column-options { display: flex; flex-wrap: wrap; gap: 4px 22px; }
.column-options label { margin: 0; }
.column-picker-footer { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; padding: 10px 16px 16px; }
[data-column][hidden], [data-time-separator][hidden] { display: none !important; }
@media (max-width: 700px) {
    .wide-layout header { padding-left: 16px; padding-right: 16px; }
    .column-options { display: grid; grid-template-columns: 1fr 1fr; gap: 0 12px; }
    .mobile-day-heading > [data-column="date"] { color: inherit; font-size: inherit; }
}

/* Filtri per periodo e selezione multipla delle attività. */
.calendar-filters { flex: 1; }
.filter-label { display: block; font-size: .88rem; font-weight: 600; margin-bottom: 6px; }
.activity-filter { min-width: 240px; max-width: 420px; flex: 1; }
.activity-picker { position: relative; border: 0; margin: 0; padding: 0; }
.activity-picker summary { border: 1px solid #aebaca; border-radius: 7px; padding: 10px 12px; color: var(--ink); min-height: 46px; background: #fff; }
.activity-picker-options { position: absolute; top: calc(100% + 6px); left: 0; width: max(100%, 320px); max-width: calc(100vw - 70px); max-height: 340px; overflow-y: auto; z-index: 10; background: #fff; padding: 14px; border: 1px solid var(--line); border-radius: 8px; box-shadow: 0 8px 24px #20304420; }
.activity-picker-options .check { align-items: flex-start; padding: 8px 0; gap: 9px; font-size: .85rem; }
.activity-picker-options input { margin-top: 3px; }
.filter-reset { padding: 10px 4px; font-size: .85rem; }
@media (max-width: 700px) {
    .activity-filter { min-width: 0; max-width: none; flex: 1 1 100%; }
    .activity-picker-options { position: static; width: 100%; max-width: none; margin-top: 8px; box-shadow: none; }
    .calendar-filters > label { flex: 1 1 120px; }
}

/* Identità TurnApp e intestazione CRI. */
:root { --red: #7A0019; --red-dark: #620014; --cri-gradient: linear-gradient(135deg, #7A0019 0%, #9b1b30 100%); font-family: "Century Gothic", CenturyGothic, AppleGothic, sans-serif; }
body > header { background: var(--cri-gradient); color: #fff; border-bottom: 0; }
.brand { display: flex; align-items: center; gap: 16px; color: #fff; }
.brand img { display: block; width: 295px; max-width: 38vw; height: auto; }
.brand .brand-divider { color: #ffffff9c; font-weight: 400; margin: 0; font-size: 2rem; }
.brand .brand-name { color: #fff; font-size: 1.55rem; margin: 0; font-weight: 700; }
body > header nav a, body > header nav span { color: #fff; }
body > header .secondary { background: transparent; border-color: #ffffff80; color: #fff; }
body > header .secondary:hover { background: #ffffff20; }
.icon-action { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; padding: 6px; border: 1px solid #d5dfe8; border-radius: 6px; color: #265878; background: #fff; text-decoration: none; }
.icon-action svg { width: 21px; height: 21px; }
.icon-action:hover { background: #e9f2fb; border-color: #93b4d1; }
.export-form { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin: 0 0 14px; }

/* Finestra di assegnazione e ricerca soci. */
.assignment-dialog { border: 0; border-radius: 14px; padding: 0; width: min(820px, calc(100vw - 32px)); max-height: calc(100dvh - 40px); color: var(--ink); box-shadow: 0 24px 80px #172a4950; }
.assignment-dialog::backdrop { background: #18263880; }
.dialog-heading { display: flex; justify-content: space-between; align-items: center; padding: 14px 22px; background: var(--cri-gradient); color: #fff; position: sticky; top: 0; z-index: 2; }
.dialog-heading h2 { margin: 0; font-size: 1.1rem; }
.dialog-close { background: transparent; color: #fff; border: 0; font-size: 1.8rem; padding: 0; width: 44px; height: 44px; }
.dialog-close:hover { background: #ffffff20; }
.assignment-dialog [data-dialog-content] { padding: 18px; }
.assignment-dialog .panel { border: 0; margin: 0; padding: 0; }
.assignment-dialog .actions { position: sticky; bottom: -18px; background: #fff; border-top: 1px solid var(--line); padding: 14px 0; }
.member-picker { padding: 16px; background: #f2f6fa; border: 1px solid #dce6ee; border-radius: 9px; margin-bottom: 22px; }
.member-selection { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin: 8px 0 12px; font-size: .87rem; }
.member-selection strong { display: block; }
.member-selection button { font-size: .78rem; padding: 6px 12px; }
.member-results { display: grid; gap: 5px; max-height: 220px; overflow-y: auto; }
.member-result { width: 100%; justify-content: space-between; text-align: left; border-color: var(--line); background: #fff; color: var(--ink); font-size: .9rem; }
.member-result:hover { background: #e3effa; color: #194d78; }
.member-result small { font-weight: 400; }
[data-form-error][hidden] { display: none; }
@media (max-width: 700px) {
    .brand { gap: 10px; width: 100%; }
    .brand img { width: min(230px, 62vw); max-width: 62vw; }
    .brand .brand-name { font-size: 1.15rem; }
    .brand .brand-divider { font-size: 1.4rem; }
    .mobile-add.icon-action { width: 44px; height: 44px; margin-left: auto; padding: 8px; }
    .assignment-dialog { width: calc(100vw - 16px); max-height: calc(100dvh - 16px); border-radius: 10px; }
    .assignment-dialog [data-dialog-content] { padding: 12px; }
    .assignment-dialog .form-grid { grid-template-columns: 1fr; }
    .dialog-heading { padding: 8px 14px; }
    .member-picker { padding: 12px; }
    .member-selection { align-items: flex-start; }
    .export-form .muted { font-size: .76rem; }
}
body > header { flex-wrap: wrap; }
@media (max-width: 700px) {
    .brand img { width: min(230px, 54vw); max-width: 54vw; }
}

/* Campi proporzionati al contenuto nella finestra di assegnazione. */
.assignment-context { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 14px; }
.assignment-timing { display: grid; grid-template-columns: minmax(150px, 1fr) minmax(150px, 1fr) 106px 106px 80px; gap: 10px; }
.edit-form label { margin-bottom: 12px; }
.edit-form input, .edit-form select, .edit-form textarea { min-width: 0; font-size: .9rem; padding: 9px 10px; }
.edit-form .squad-field input { max-width: 80px; }
.edit-form .assignment-hint { font-size: .76rem; margin-bottom: 10px; }
.edit-form .member-picker { padding: 12px 14px; margin-bottom: 16px; }
.edit-form .member-selection { margin: 0 0 8px; }
.edit-form [data-member-status] { margin-bottom: 0; font-size: .76rem; }
.edit-form .member-results:not(:empty) { margin-top: 10px; max-height: 180px; }
.edit-form .actions { margin-top: 12px; }
.roster [data-column="squad"] { width: 72px; min-width: 72px; max-width: 80px; padding-left: 6px; padding-right: 6px; text-align: center; white-space: nowrap; }
.delete-row { border-top: 0; padding-top: 0; margin-top: 8px; }
.delete-row > summary { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 10px; list-style: none; border: 1px solid #e2c3ca; border-radius: 7px; color: var(--red); }
.delete-row > summary::-webkit-details-marker { display: none; }
.delete-row > summary svg { width: 21px; height: 21px; }
.delete-row > summary:hover { background: #f9edf0; }
.delete-confirmation { margin-top: 10px; padding: 12px; background: #fcf4f5; border-radius: 8px; font-size: .85rem; }
@media (max-width: 700px) {
    .assignment-context { grid-template-columns: 1fr; gap: 0; }
    .assignment-timing { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 12px; }
    .assignment-timing input[type="time"] { max-width: 130px; }
    .edit-form .squad-field { max-width: 80px; }
    .edit-form .member-picker { padding: 10px; }
}

/* Scheda utente: collegamento, visibilità e fasce separate. */
.admin-user-heading { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px; }
.admin-user-heading .inline { margin:0; }
.admin-account-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; align-items:start; }
.admin-account-grid .panel { min-width:0; }
.admin-account-grid h2 { font-size:1.15rem; }
.admin-footnote { margin:14px 0 0; font-size:.82rem; }
.activity-checklist { max-height:300px; overflow:auto; padding:10px; border:1px solid var(--border,#d8e0e9); border-radius:8px; margin-bottom:14px; }
.activity-checklist .check { align-items:flex-start; padding:7px; margin:0; }
.activity-checklist input { flex-shrink:0; }
.permission-period { display:grid; grid-template-columns:170px 170px 120px 120px 90px; gap:12px; }
.permission-flags { display:flex; flex-wrap:wrap; gap:12px 24px; margin-bottom:18px; }
.permissions-table td { vertical-align:top; }
.permissions-table small { display:block; max-width:180px; color:var(--muted); margin-top:6px; }
.permissions-table td:last-child form { display:inline-block; margin-left:14px; }
.rule-editor { margin-top:20px; }
.rule-editor > summary, .add-user > summary { cursor:pointer; color:var(--red); font-weight:700; padding:10px 0; }
.rule-editor > form, .add-user > form { margin-top:14px; }
@media (max-width:1000px) { .admin-account-grid { grid-template-columns:1fr; gap:0; } }
@media (max-width:760px) { .permission-period { grid-template-columns:repeat(2,minmax(0,1fr)); } .permission-period label:last-child { max-width:90px; } .permission-flags { flex-direction:column; gap:4px; } }

/* Calendario e identità condivisa delle pagine TurnApp. */
body { min-height:100vh; display:flex; flex-direction:column; isolation:isolate; }
body::before { content:""; position:fixed; inset:0; z-index:-1; background:linear-gradient(115deg,#f5f4f0ad,#f4f4f06b),url("back_login_60.jpg") center / cover no-repeat; }
body > main { width:100%; flex:1; }
body > header { box-shadow:0 3px 14px #42132230; }
.brand .brand-name { display:inline-flex; align-items:center; background:#fffc; color:var(--red-dark); border-radius:10px 10px 10px 2px; padding:5px 13px; font-size:1.25rem; font-weight:400; letter-spacing:-.055em; }
.brand-name strong { font-weight:700; }
body > header nav { gap:8px; }
body > header nav a, body > header nav button { display:inline-flex; align-items:center; justify-content:center; min-height:40px; border:1px solid #ffffff55; border-radius:8px; padding:7px 13px; text-decoration:none; font-size:.88rem; font-weight:600; background:#ffffff0e; }
body > header nav a:hover, body > header nav button:hover { background:#ffffff26; }
body > header nav > span { padding:0 8px; }
button,.button { border-radius:8px; }
button:not(.secondary,.member-result,.dialog-close,.danger),.button:not(.secondary) { background:var(--cri-gradient); }
.secondary,.button.secondary { box-shadow:0 1px 2px #18233412; }
.toolbar.panel { display:grid; grid-template-columns:minmax(0,1fr); justify-content:stretch; gap:16px; background:#fff; padding:18px 22px; margin-bottom:16px; }
.calendar-filters { display:grid; grid-template-columns:minmax(9rem,12rem) repeat(2,minmax(8rem,10rem)) minmax(11rem,1fr) auto auto; align-items:end; gap:12px; }
.calendar-filters .activity-filter { max-width:none; }
.filter-actions { display:flex; align-items:stretch; gap:8px; }
.filter-actions > * { white-space:nowrap; }
@media(min-width:701px) and (max-width:1200px) {
    .calendar-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .filter-actions { justify-content:flex-end; }
}
.calendar-filters label,.calendar-filters .activity-filter { min-width:0; }
.calendar-filters .activity-filter { flex:1 1 200px; }
.calendar-filters input[type=date],.calendar-filters input[type=month] { width:100%; }
.calendar-filters .filter-reset { font:inherit; font-size:.88rem; font-weight:600; padding:10px 14px; }
.shift-scope { display:grid; gap:2px; }
.shift-scope .check { min-height:24px; margin:0; gap:7px; }
input[type=checkbox] { accent-color:var(--red); }
.calendar-tools { display:flex; align-items:center; flex-wrap:wrap; gap:8px; border-top:1px solid var(--line); padding-top:12px; }
.calendar-tools .export-form { width:auto; margin:0; }
.calendar-tools .button,.calendar-tools button { min-height:40px; padding:8px 14px; font-size:.85rem; }
.column-picker { position:relative; border:0; margin:0 0 0 auto; }
.column-picker > summary { display:inline-flex; list-style:none; }
.column-picker > summary::-webkit-details-marker { display:none; }
.column-picker[open] > summary { color:var(--red); border-color:var(--red); }
.columns-icon { width:16px; height:14px; border:1.5px solid currentColor; border-radius:3px; background:repeating-linear-gradient(90deg,transparent 0 4px,currentColor 4px 5px); }
.column-panel { position:absolute; z-index:12; top:calc(100% + 7px); right:0; width:310px; max-width:calc(100vw - 40px); border:1px solid var(--line); border-radius:12px; background:white; box-shadow:0 8px 28px #17233826; padding:16px; }
.column-panel fieldset { margin:0; }
.column-panel legend { color:var(--ink); font-weight:700; }
.column-panel .column-options { display:grid; grid-template-columns:1fr 1fr; gap:6px; }
.column-options .check { border:1px solid var(--line); padding:5px 9px; border-radius:7px; min-height:36px; gap:8px; }
.column-options .check:has(input:checked) { background:#faf1f3; border-color:#dcc1c7; }
.column-picker-footer { padding:12px 0 0; gap:8px; align-items:center; }
.column-picker-footer .muted { font-size:.74rem; }
.site-footer { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:8px 20px; text-align:left; padding:16px clamp(16px,2vw,36px); background:#fffefaed; border-top:1px solid var(--line); }
.site-footer div { display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 14px; }
.site-footer strong { color:var(--red); font-size:1rem; }
.site-footer small { font-size:.78rem; }
@media(max-width:700px) {
    body > header nav { justify-content:flex-start; }
    .toolbar.panel { padding:14px; }
    .calendar-filters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
    .calendar-filters > label:first-child,.calendar-filters .activity-filter,.shift-scope,.filter-actions { grid-column:1/-1; }
    .filter-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
    .shift-scope { display:flex; flex-wrap:wrap; gap:8px 16px; }
    .calendar-tools { position:relative; }
    .calendar-tools .column-picker { position:static; margin-left:0; }
    .column-panel { left:0; right:auto; width:min(310px,100%); }
    .site-footer { flex-direction:column; align-items:flex-start; }
}
