:root{--red:#e30613;--red80:#e93842;--red20:#f9cdd0;--black:#000;--grey:#505759;--white:#fff;--k80:#333;--k60:#666;--k40:#999;--k20:#ccc;--bg:#fff;--fg:#000;--muted:#666;--line:#ccc;--raise:#fff;--soft:#f9cdd0;--chipbg:#ccc;--chipfg:#000;--inputbg:#fff;--head:"Arial Black", "Arial Bold", Arial, Helvetica, sans-serif;--sub:"Arial Narrow", "Arial", Helvetica, sans-serif;--copy:Arial, Helvetica, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#000;--fg:#fff;--muted:#999;--line:#666;--raise:#333;--soft:#333;--chipbg:#333;--chipfg:#fff;--inputbg:#000;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#000;--fg:#fff;--muted:#999;--line:#666;--raise:#333;--soft:#333;--chipbg:#333;--chipfg:#fff;--inputbg:#000;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{scroll-padding-top:env(safe-area-inset-top,0px)}body{background:var(--bg);color:var(--fg);font-family:var(--copy);margin:0;padding:0;font-size:14px;line-height:1.5}img{max-width:100%}[hidden]:not([hidden=until-found i]){display:none!important}.wrap{max-width:1180px;padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));margin:0 auto}header.top{background:var(--black);color:var(--white);position:relative}header.top:before{content:"";background:var(--red);width:14px;height:14px;position:absolute;top:0;left:0}.topin{flex-wrap:wrap;align-items:center;gap:16px 28px;padding-block:20px 0;display:flex}.logo{background:var(--white);padding:8px 12px;line-height:0;display:block}.logo img{width:auto;height:46px}.ttl h1{font-family:var(--head);letter-spacing:-.05em;margin:0;font-size:33px;line-height:1.2}.ttl p{font-family:var(--sub);text-transform:uppercase;letter-spacing:.06em;color:var(--k40);margin:0;font-size:14px}.meta{font-family:var(--sub);text-transform:uppercase;letter-spacing:.06em;color:var(--k40);flex-wrap:wrap;align-items:center;gap:6px 18px;margin-left:auto;font-size:13px;display:flex}.meta .user{color:var(--white)}.meta button{font-family:var(--sub);text-transform:uppercase;letter-spacing:.06em;color:var(--white);border:1px solid var(--k60);padding:4px 10px;font-size:13px;font-weight:400}.meta button:hover{background:var(--k80)}nav.tabs{gap:4px;margin-top:18px;display:flex;overflow-x:auto}nav.tabs a{color:var(--white);font-family:var(--sub);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;border-bottom:4px solid #0000;padding:10px 14px;font-size:15px;text-decoration:none}nav.tabs a[aria-current=page]{border-bottom-color:var(--red);font-weight:700}nav.tabs a:hover{background:var(--k80)}header.top:not(:has(nav.tabs)) .topin{padding-block:20px}main{padding-block:28px 64px}h2{font-family:var(--sub);text-transform:uppercase;letter-spacing:.02em;margin:0;font-size:24px;font-weight:700;line-height:1.3}h3{font-family:var(--head);letter-spacing:-.04em;margin:0;font-size:18px;line-height:1.3}.stack{flex-direction:column;gap:20px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.between{justify-content:space-between}.muted{color:var(--muted)}.small{font-size:12px}.num{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.panel{border:1px solid var(--line);background:var(--raise);padding:20px}.panel.flat{background:0 0}button,.btn{font:inherit;cursor:pointer;border:2px solid var(--fg);color:var(--fg);background:0 0;padding:8px 14px;font-weight:700;line-height:1.3}.btn{justify-content:center;align-items:center;text-decoration:none;display:inline-flex}button:hover,.btn:hover{background:var(--soft)}button.primary,.btn.primary{background:var(--red);border-color:var(--red);color:var(--white);font-family:var(--head);letter-spacing:-.02em;padding:11px 18px}button.primary:hover,.btn.primary:hover{background:var(--red80);border-color:var(--red80)}button.ghost,.btn.ghost{border-color:#0000;padding:6px 8px;font-weight:400;text-decoration:underline}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible,tr.clickable:focus-visible{outline:3px solid var(--red);outline-offset:2px}input,select,textarea{font:inherit;color:var(--fg);background:var(--inputbg);border:1px solid var(--k40);min-width:0;padding:7px 8px}input:disabled,select:disabled{opacity:.6}label.f{font-family:var(--sub);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);flex-direction:column;gap:4px;font-size:12px;display:flex}label.f input,label.f select,label.f textarea{font-family:var(--copy);text-transform:none;letter-spacing:0;color:var(--fg);font-size:14px}.grid-form{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));align-items:end;gap:12px;display:grid}.chip{font-family:var(--sub);text-transform:uppercase;letter-spacing:.05em;background:var(--chipbg);color:var(--chipfg);white-space:nowrap;padding:2px 8px;font-size:12px;font-weight:700;display:inline-block}.chip.red{background:var(--red);color:var(--white)}.chip.tint{background:var(--red20);color:#000}.chip.black{background:var(--fg);color:var(--bg)}.chip.grey{background:var(--grey);color:var(--white)}.chip.line{border:1px solid var(--fg);color:var(--fg);background:0 0}.weeknav{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.weeknav .kw{font-family:var(--head);letter-spacing:-.05em;min-width:0;font-size:33px;line-height:1.1}.weeknav .range{font-family:var(--sub);text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.sq{width:40px;height:40px;padding:0;font-size:20px}.kpis{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.kpi{border-top:4px solid var(--fg);padding-top:8px}.kpi.red{border-top-color:var(--red)}.kpi b{font-family:var(--head);letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:26px;line-height:1.2;display:block}.kpi span{font-family:var(--sub);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:12px}.steps{border:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));gap:0;display:grid}.step{border-right:1px solid var(--line);min-width:0;padding:14px 16px}.step:last-child{border-right:0}.step .n{width:26px;height:26px;font-family:var(--head);border:2px solid var(--k40);color:var(--k40);justify-content:center;align-items:center;margin-right:8px;display:inline-flex}.step.done .n{background:var(--fg);border-color:var(--fg);color:var(--bg)}.step.now .n{border-color:var(--red);color:var(--red)}.step .t{font-weight:700}.step .d{color:var(--muted);overflow-wrap:anywhere;margin-top:4px;font-size:12px}@media (max-width:640px){.steps{grid-template-columns:1fr}.step{border-right:0;border-bottom:1px solid var(--line)}.step:last-child{border-bottom:0}}.action{border:2px solid var(--fg);flex-direction:column;gap:14px;padding:18px;display:flex}.action.lock{border-color:var(--line)}.warn{background:var(--red20);color:#000;border-left:6px solid var(--red);padding:10px 12px}.note{border-left:6px solid var(--grey);background:var(--soft);padding:8px 12px}.card{border:1px solid var(--line)}.card-h{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 16px;padding:12px 16px;display:flex}.card-h .nm{font-family:var(--head);letter-spacing:-.04em;font-size:17px}.scroll{overflow-x:auto}table{border-collapse:collapse;width:100%}th{font-family:var(--sub);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);text-align:left;border-bottom:2px solid var(--fg);white-space:nowrap;padding:8px;font-size:12px;font-weight:700}td{border-bottom:1px solid var(--line);vertical-align:middle;padding:6px 8px}tfoot td{border-top:2px solid var(--fg);border-bottom:0;font-weight:700}table.days{min-width:760px}table.days input.tm{font-variant-numeric:tabular-nums;width:84px}table.days input.tm.bad{border-color:var(--red);outline:2px solid var(--red)}.miss{color:var(--red);white-space:nowrap;font-size:12px;font-weight:700}table.days select{width:100%;min-width:90px}tr.clickable{cursor:pointer}tr.clickable:hover td{background:var(--soft)}.empty{border:2px dashed var(--line);text-align:center;flex-direction:column;align-items:center;gap:12px;padding:28px;display:flex}.kat{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 16px;padding:10px 0;display:grid}.scale{gap:4px;display:flex}.scale label{display:flex}.scale input{opacity:0;width:1px;height:1px;position:absolute}.scale span{border:2px solid var(--k40);width:38px;height:38px;font-family:var(--head);cursor:pointer;justify-content:center;align-items:center;display:inline-flex}.scale input:checked+span{background:var(--red);border-color:var(--red);color:var(--white)}.scale input:focus-visible+span{outline:3px solid var(--red);outline-offset:2px}@media (max-width:560px){.kat{grid-template-columns:1fr}}.result{background:var(--fg);color:var(--bg);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;padding:16px;display:grid}.result b{font-family:var(--head);letter-spacing:-.04em;font-size:24px;display:block}.result span{font-family:var(--sub);text-transform:uppercase;letter-spacing:.05em;opacity:.8;font-size:12px}.toast{left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));background:var(--fg);color:var(--bg);z-index:20;max-width:calc(100% - 32px);padding:12px 18px;font-weight:700;position:fixed;transform:translate(-50%)}.legend{color:var(--muted);flex-wrap:wrap;gap:6px 16px;font-size:12px;display:flex}.hist li{border-bottom:1px solid var(--line);padding:10px 0}ul.hist{margin:0;padding:0;list-style:none}.loading{color:var(--muted);padding:40px 0}dialog.modal{border:2px solid var(--fg);background:var(--bg);color:var(--fg);width:min(520px,100% - 32px);max-width:none;padding:24px}dialog.modal:before{content:"";background:var(--red);width:14px;height:14px;position:absolute;top:0;left:0}dialog.modal::backdrop{background:#0000008c}dialog.modal form{flex-direction:column;gap:16px;display:flex}dialog.modal p{margin:0}.auth{max-width:420px;margin:0 auto}.auth form{flex-direction:column;gap:14px;display:flex}.auth a{color:var(--fg)}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
