@font-face{font-family:Anton;font-display:swap;src:url(/assets/fonts/anton-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+2000-206F}
@font-face{font-family:Anton;font-display:swap;src:url(/assets/fonts/anton-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA}
@font-face{font-family:Manrope;font-weight:400 800;font-display:swap;src:url(/assets/fonts/manrope-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+2000-206F,U+2212}
@font-face{font-family:Manrope;font-weight:400 800;font-display:swap;src:url(/assets/fonts/manrope-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA}
:root{
  --ink:#131211;--surface:#1D1B19;--surface-2:#252220;--line:#332F2A;
  --terra:#BB8963;--terra-deep:#8A6244;--paper:#F2EFEA;--muted:#989189;--warn:#E0A96D;--r:8px;
}
*{margin:0;padding:0;box-sizing:border-box}
body{background:var(--ink);color:var(--paper);font-family:Manrope,"Helvetica Neue",Arial,sans-serif;
  font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;padding-bottom:calc(40px + env(safe-area-inset-bottom))}
a{color:inherit}
.wrap{width:100%;max-width:640px;margin-inline:auto;padding-inline:16px}
.top{border-bottom:1px solid var(--line);margin-bottom:20px}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:60px}
.top img{height:22px;width:auto}
.lab{font-weight:700;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--terra);margin-bottom:8px}
h1{font-family:Anton,Impact,sans-serif;font-weight:400;font-size:2rem;line-height:1.1;letter-spacing:.01em;margin-bottom:8px}
section{margin-bottom:20px}
.muted{color:var(--muted)}
.small{font-size:.85rem}
.center{text-align:center}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px;margin-bottom:16px}
.card.narrow{max-width:380px;margin:40px auto}
.card.alert{border-color:var(--terra)}
.card p+p,.card p+form,.card h1+p{margin-top:8px}
details.card summary{cursor:pointer;list-style:none}
details.card[open] summary{margin-bottom:10px}
.flash{background:var(--surface-2);border-left:3px solid var(--terra);padding:12px 14px;border-radius:4px;margin-bottom:16px}
.warn{color:var(--warn)}
.count{font-size:1.05rem}
.count strong{font-family:Anton,Impact,sans-serif;font-weight:400;font-size:1.6rem;color:var(--terra);margin-right:4px}
.hello{margin-bottom:16px}
.back{display:inline-block;color:var(--muted);text-decoration:none;margin-bottom:10px;font-size:.9rem}

.list{list-style:none}
.row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;
  padding:12px 0;border-bottom:1px solid var(--line)}
.row a{text-decoration:none}
.row .actions,.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.card .actions{margin-top:10px}
.st-late,.st-late_ok,.st-late_no{opacity:.75}
.log{padding:10px 0;border-bottom:1px solid var(--line)}
.tag{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.04em;color:var(--warn);
  border:1px solid var(--line);border-radius:100px;padding:2px 9px;margin-left:6px;vertical-align:middle}
p.tag{margin:0 0 6px}

.btn,.mini{display:inline-flex;align-items:center;justify-content:center;font:inherit;font-weight:700;
  cursor:pointer;text-decoration:none;appearance:none;border-radius:var(--r)}
.btn{background:var(--terra);color:var(--ink);border:1px solid var(--terra);padding:13px 18px;min-height:48px;font-size:.95rem}
.btn.ghost{background:transparent;color:var(--paper);border-color:var(--line)}
.btn.danger{background:var(--warn);border-color:var(--warn)}
.mini{background:var(--surface-2);color:var(--paper);border:1px solid var(--line);padding:7px 12px;font-size:.82rem;min-height:36px}
.stack{display:flex;flex-direction:column;gap:10px}
form .btn+.btn{margin-left:8px}

.form{display:flex;flex-direction:column;gap:12px}
.row-form{flex-direction:row;flex-wrap:wrap;align-items:center}
.row-form input,.row-form select{flex:1 1 120px}
label{display:flex;flex-direction:column;gap:4px;font-size:.85rem;color:var(--muted)}
input,select{font:inherit;font-size:16px;color:var(--paper);background:var(--ink);border:1px solid var(--line);
  border-radius:var(--r);padding:11px 12px;min-height:46px;width:100%;color-scheme:dark}
input:focus,select:focus{outline:2px solid var(--terra);outline-offset:1px}
input.copy{font-size:.8rem;min-height:40px}
.inline{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:8px}
.inline input{flex:1 1 180px;width:auto}
details.more{width:100%}
details.more summary{cursor:pointer;color:var(--muted);font-size:.82rem;list-style:none}
details.more summary::before{content:'▸ '}
details.more[open] summary::before{content:'▾ '}

.day{margin-bottom:18px}
.day-name{font-weight:700;text-transform:capitalize;margin-bottom:6px}
.day.today .day-name{color:var(--terra)}
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(74px,1fr));gap:8px}
.slot{display:flex;align-items:center;justify-content:center;min-height:46px;border:1px solid var(--line);
  border-radius:var(--r);background:var(--surface);text-decoration:none;font-weight:700;font-variant-numeric:tabular-nums}
.slot:hover,.slot:focus-visible{border-color:var(--terra);color:var(--terra)}
.weeknav{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.tabs{display:flex;gap:4px;margin-bottom:18px;border-bottom:1px solid var(--line);overflow-x:auto}
.tabs a{text-decoration:none;padding:10px 12px;color:var(--muted);font-weight:700;font-size:.9rem;border-bottom:2px solid transparent;white-space:nowrap}
.tabs a.on{color:var(--paper);border-bottom-color:var(--terra)}
.dayrow{flex-direction:row;align-items:center;gap:12px;color:var(--paper);font-size:.95rem}
.dayrow input[type=checkbox]{width:22px;height:22px;min-height:0;flex:none;accent-color:var(--terra)}
.dayrow span{flex:1}
.dayrow input[type=time]{width:120px;flex:none}
.dayrow:has(input[type=checkbox]:not(:checked)) span,.dayrow:has(input[type=checkbox]:not(:checked)) input[type=time]{opacity:.45}
.actions .inline{margin-top:0}
/* niedostępność: przełącznik całe dni / godziny (bez JS, przez :has) */
.seg{display:flex;border:1px solid var(--line);border-radius:var(--r);padding:3px;gap:3px;background:var(--ink)}
.seg label{flex:1;flex-direction:row;justify-content:center;cursor:pointer;color:var(--muted);font-weight:700;font-size:.9rem}
.seg input{position:absolute;opacity:0;pointer-events:none;width:auto;min-height:0}
.seg span{display:block;width:100%;text-align:center;padding:9px 6px;border-radius:5px}
.seg input:checked+span{background:var(--surface-2);color:var(--paper)}
.seg input:focus-visible+span{outline:2px solid var(--terra)}
.pair{display:flex;gap:10px}
.pair>label{flex:1;min-width:0}
.block-form .when-hours{display:none}
.block-form:has(input[value=hours]:checked) .when-hours{display:flex}
.block-form:has(input[value=hours]:checked) span.when-hours{display:inline}
.block-form:has(input[value=hours]:checked) .when-days{display:none}
.newperson{margin-top:36px}
.lab.sub{margin:10px 0 -2px;padding-top:14px;border-top:1px solid var(--line)}
.newperson summary{display:flex;align-items:center;justify-content:space-between;cursor:pointer;list-style:none}
.newperson summary::-webkit-details-marker{display:none}
.newperson summary .lab{margin:0}
.newperson .toggle::before{content:'+ Dodaj'}
.newperson[open] .toggle::before{content:'Zwiń'}
.newperson[open] summary{margin-bottom:14px}
