:root{--or:#f58220;--or2:#e2561b;--yl:#f9c80e;--navy:#1a1d3a;--navy2:#262a52;--navy3:#323769;--bg:#f4f5fa;--card:#fff;--ink:#1d2033;--mut:#6b7088;--line:#e1e4ef;--ok:#1f8a4c;--bad:#c0392b;
  --grad:linear-gradient(135deg,#f58220 0%,#e2561b 100%);--ease:cubic-bezier(.2,.7,.2,1);--r:16px}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:400 16px/1.6 'Kanit',system-ui,sans-serif}
a{color:var(--or2)}
.shell{display:flex;min-height:100vh}
/* ---- sidebar ---- */
.side{width:252px;flex:0 0 252px;background:var(--navy);color:#cfd3ee;display:flex;flex-direction:column;padding:18px 14px;position:sticky;top:0;height:100vh;overflow:hidden}
.side:after{content:"";position:absolute;inset:auto -60px -80px auto;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(245,130,32,.35),transparent 70%);pointer-events:none}
.logoplate{display:block;background:#fff;border-radius:14px;padding:10px 12px;margin-bottom:20px;box-shadow:0 6px 18px rgba(0,0,0,.25);transition:transform .3s var(--ease)}.logoplate:hover{transform:translateY(-2px)}.logoplate img{display:block;width:100%;height:auto}
.side nav{display:flex;flex-direction:column;gap:4px;position:relative;z-index:1}
.side nav a{color:#cfd3ee;text-decoration:none;padding:10px 14px;border-radius:10px;font-weight:400;transition:background .2s,color .2s,transform .2s var(--ease)}
.side nav a:hover{background:var(--navy2);color:#fff;transform:translateX(3px)}.side nav a.on{background:var(--grad);color:#fff;font-weight:500;box-shadow:0 6px 16px rgba(226,86,27,.35)}
.side nav a.admin{margin-top:12px;font-size:14px;opacity:.75}
.sidefoot{margin-top:auto;font-size:11px;opacity:.6;text-align:center;letter-spacing:.08em;position:relative;z-index:1}.sidefoot span{color:var(--yl);letter-spacing:0;font-size:12px}
.content{flex:1;min-width:0;display:flex;flex-direction:column}
/* ---- top bar + live clock ---- */
.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 22px;background:rgba(255,255,255,.85);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.tb-title{display:flex;align-items:center;gap:10px;min-width:0}.tb-badge{background:var(--navy);color:#fff;border-radius:8px;padding:2px 10px;font-weight:600;font-size:14px;letter-spacing:.04em;white-space:nowrap}.tb-sub{color:var(--mut);font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.clock{display:flex;align-items:center;gap:8px;background:var(--navy);color:#fff;border-radius:999px;padding:4px 14px 4px 12px;font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:.06em;box-shadow:0 4px 12px rgba(26,29,58,.2)}
.clock span{min-width:5.2em;text-align:center}
.live{width:9px;height:9px;border-radius:50%;background:#2ee66b;box-shadow:0 0 0 0 rgba(46,230,107,.7);animation:blink 1s steps(2,start) infinite,ping 2s ease-out infinite}
@keyframes blink{to{background:#0f9e44}}@keyframes ping{0%{box-shadow:0 0 0 0 rgba(46,230,107,.6)}80%,100%{box-shadow:0 0 0 7px rgba(46,230,107,0)}}
main{width:100%;max-width:960px;margin:0 auto;padding:24px 18px 40px;flex:1}
.loading{display:flex;align-items:center;gap:10px;color:var(--mut);padding:40px 0;justify-content:center}.loading span{width:18px;height:18px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--or);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
/* ---- footer ---- */
.sitefoot{background:var(--navy);color:#cfd3ee;padding:22px 18px 26px;margin-top:20px;font-size:13px}
.sitefoot .contacts{max-width:960px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}
.sitefoot .ct{background:var(--navy2);border-radius:12px;padding:12px 16px;border-left:4px solid var(--or)}.sitefoot .ct small{display:block;color:#9aa0c8}.sitefoot .ct b{display:block;color:#fff;font-weight:500;font-size:15px}
.sitefoot .ct a{color:var(--yl);text-decoration:none;font-weight:500}.sitefoot .ct a:hover{text-decoration:underline}
.sitefoot p{max-width:960px;margin:14px auto 0;text-align:center;opacity:.7}
/* ---- hero ---- */
.hero{position:relative;overflow:hidden;color:#fff;border-radius:22px;padding:26px 28px;margin-bottom:18px;
  background:linear-gradient(120deg,#1a1d3a 0%,#e2561b 38%,#f58220 62%,#f9c80e 85%,#1a1d3a 100%);background-size:300% 300%;animation:flow 14s ease infinite;box-shadow:0 12px 30px rgba(226,86,27,.25)}
.hero:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 85% 20%,rgba(255,255,255,.22),transparent 40%),radial-gradient(circle at 10% 110%,rgba(26,29,58,.55),transparent 55%);pointer-events:none}
.hero>*{position:relative}
.hero h1{margin:0 0 4px;font-size:27px;font-weight:600;line-height:1.3;text-shadow:0 2px 10px rgba(0,0,0,.18)}.hero p{margin:0;opacity:.95}
@keyframes flow{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}
.hero.xl{padding:38px 34px 32px;border-radius:26px}
.hero.xl .eyebrow{display:inline-block;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.35);border-radius:999px;padding:3px 14px;font-size:13px;letter-spacing:.05em;margin-bottom:12px}
.hero.xl h1{font-size:clamp(24px,3.6vw,38px);font-weight:600;margin-bottom:6px}.hero.xl h1 em{font-style:normal;display:block;font-size:.72em;font-weight:500;color:#fff4cc;letter-spacing:.01em}
.hero .lines{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.hero .lines span{display:inline-flex;align-items:center;gap:6px;background:rgba(26,29,58,.35);border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:4px 12px;font-size:14px;backdrop-filter:blur(2px)}
.hero .lines span.dl{background:var(--yl);color:var(--navy);border-color:transparent;font-weight:500}
.hero .spark{position:absolute;right:-30px;top:-30px;width:200px;height:200px;opacity:.18;pointer-events:none}
/* ---- big home buttons ---- */
.cta{display:grid;grid-template-columns:1.35fr 1fr;gap:16px;margin:4px 0 22px}
.cta a{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center;gap:2px;text-decoration:none;border-radius:20px;padding:24px 26px;min-height:120px;transition:transform .25s var(--ease),box-shadow .25s}
.cta a b{font-size:clamp(20px,2.4vw,26px);font-weight:600;display:flex;align-items:center;gap:10px}.cta a small{font-size:14px;opacity:.9}
.cta a .arr{margin-left:auto;transition:transform .25s var(--ease)}.cta a:hover .arr{transform:translateX(5px)}
.cta .main{color:#fff;background:linear-gradient(120deg,#e2561b,#f58220,#f9a51a,#f58220,#e2561b);background-size:250% 100%;animation:flow 6s ease infinite,glow 2.4s ease-in-out infinite}
.cta .main:after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.45),transparent);transform:skewX(-20deg);animation:shine 3.2s ease-in-out infinite}
.cta .main:hover{transform:translateY(-3px) scale(1.01)}
@keyframes glow{0%,100%{box-shadow:0 8px 22px rgba(226,86,27,.35),0 0 0 0 rgba(245,130,32,.45)}50%{box-shadow:0 12px 34px rgba(226,86,27,.5),0 0 0 8px rgba(245,130,32,0)}}
@keyframes shine{0%{left:-60%}55%,100%{left:130%}}
.cta .sub{background:#fff;color:var(--navy);border:2px solid var(--navy);box-shadow:0 6px 18px rgba(26,29,58,.08)}.cta .sub b{color:var(--navy)}.cta .sub small{color:var(--mut)}
.cta .sub:hover{transform:translateY(-3px);background:var(--navy);color:#fff}.cta .sub:hover b,.cta .sub:hover small{color:#fff}
.ico{width:26px;height:26px;flex:0 0 auto}
/* ---- public dashboard ---- */
.dash{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:8px}
.dash>div{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px 12px 14px;text-align:center;position:relative;overflow:hidden;transition:transform .25s var(--ease),box-shadow .25s}
.dash>div:before{content:"";position:absolute;left:0;top:0;right:0;height:4px;background:var(--grad)}.dash>div.n:before{background:var(--navy)}.dash>div.y:before{background:var(--yl)}
.dash>div:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(26,29,58,.08)}
.dash b{display:block;font-size:34px;font-weight:600;line-height:1.15;color:var(--navy);font-variant-numeric:tabular-nums}.dash span{font-size:13px;color:var(--mut)}
.dash-h{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:8px 0 10px}.dash-h h2{margin:0}
.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;counter-reset:s}
.steps div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px;font-size:14px;position:relative}
.steps div:before{counter-increment:s;content:counter(s);display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--grad);color:#fff;font-weight:600;margin-bottom:6px}
/* ---- generic ---- */
h1{font-size:26px;margin:.2em 0 .4em;font-weight:600}h2{font-size:18px;margin:0 0 .6em;font-weight:500;color:var(--navy)}.mut{color:var(--mut)}.small{font-size:13px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:20px;margin:14px 0;box-shadow:0 2px 10px rgba(26,29,58,.04)}
.card h2{display:flex;align-items:center;gap:8px}.card h2:before{content:"";width:5px;height:20px;border-radius:3px;background:var(--grad);flex:0 0 auto}
label{display:block;font-weight:500;margin:14px 0 5px;font-size:15px}
input,select,textarea{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font:inherit;transition:border-color .2s,box-shadow .2s}
textarea{min-height:90px}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--or);box-shadow:0 0 0 3px rgba(245,130,32,.2)}
input[type=checkbox],input[type=radio]{width:auto;accent-color:var(--or2)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--grad);color:#fff;border:0;border-radius:10px;padding:10px 20px;font:inherit;font-weight:500;cursor:pointer;text-decoration:none;box-shadow:0 4px 12px rgba(226,86,27,.25);transition:transform .15s var(--ease),filter .15s,box-shadow .15s}
.btn:hover{filter:brightness(1.06);transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn[disabled]{opacity:.55;cursor:wait}
.btn.ghost{background:#fff;color:var(--or2);border:1px solid var(--or);box-shadow:none}.btn.navy{background:var(--navy);box-shadow:none}.btn.sm{padding:5px 12px;font-size:14px}.btn.bad{background:var(--bad);box-shadow:none}.btn.lg{padding:13px 26px;font-size:17px}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.row>*{flex:1;min-width:120px}.row>.fit{flex:0 0 auto;min-width:0}
.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-flex;gap:6px;align-items:center;border:1px solid var(--line);border-radius:999px;padding:5px 14px;cursor:pointer;margin:0;font-weight:400;background:#fff;transition:background .15s,border-color .15s}
.chip:hover{border-color:var(--or)}.chip input{width:auto}.chip:has(input:checked){background:var(--grad);color:#fff;border-color:transparent}
.member{border:1px solid var(--line);border-radius:14px;padding:14px;margin:12px 0;background:#fcfcfe;animation:up .35s var(--ease) both}.member .days{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;align-items:center}
.member .no{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--navy);color:#fff;font-size:13px;font-weight:500;flex:0 0 auto!important;min-width:0!important}
.hrs{font-weight:600;color:var(--or2)}
.tag{display:inline-block;font-size:12px;padding:2px 10px;border-radius:999px;background:var(--line);white-space:nowrap}.tag.ok{background:#d6f1e1;color:#145c33}.tag.draft{background:#fdecc4;color:#7a5200}
.tag.s1{background:#e3e8ff;color:#2a3a8f}.tag.s2{background:#d6f1e1;color:#145c33}.tag.s3{background:#ffe7d1;color:#9a3f0b}.tag.s4{background:#fff3c2;color:#6b5200}.tag.s5{background:var(--navy);color:#fff}
.msg{padding:12px 14px;border-radius:10px;margin:12px 0;white-space:pre-line;animation:up .3s var(--ease) both}.msg.err{background:#fbe0dc;color:#8a2417}.msg.ok{background:#d6f1e1;color:#145c33}.msg.info{background:#e8ecff;color:#26307a}
.linkbox{display:flex;gap:8px}.linkbox input{font-size:15px}
table{width:100%;border-collapse:collapse;font-size:14px}th,td{border-bottom:1px solid var(--line);padding:6px 8px;text-align:left;vertical-align:top}th{color:var(--mut);font-weight:500}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0}.tabs button{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:999px;padding:6px 16px;font:inherit;cursor:pointer;transition:background .15s,border-color .15s}.tabs button:hover{border-color:var(--or)}.tabs button.on{background:var(--grad);color:#fff;border-color:transparent}
.stat{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}.stat div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 14px}.stat b{display:block;font-size:28px;font-weight:600;color:var(--or2)}
.warn{color:var(--bad);font-weight:500}.tablewrap{overflow-x:auto}
details>summary{cursor:pointer;color:var(--or2);font-weight:500}details>summary::marker{color:var(--or)}
/* ---- status timeline ---- */
.tl{display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin:8px 0 4px;position:relative}
.tl div{text-align:center;font-size:13px;color:var(--mut);position:relative;padding-top:34px}
.tl div:before{content:"";position:absolute;top:13px;left:-50%;right:50%;height:3px;background:var(--line)}.tl div:first-child:before{display:none}
.tl div:after{content:attr(data-n);position:absolute;top:0;left:50%;transform:translateX(-50%);width:28px;height:28px;border-radius:50%;background:#fff;border:2px solid var(--line);display:grid;place-items:center;font-weight:600;color:var(--mut);line-height:24px}
.tl div.done{color:var(--ink)}.tl div.done:before{background:var(--or)}.tl div.done:after{background:var(--grad);border-color:transparent;color:#fff}
.tl div.cur:after{box-shadow:0 0 0 5px rgba(245,130,32,.22);animation:pulse 1.8s ease-in-out infinite}.tl small{display:block;color:var(--mut);font-size:12px}
@keyframes pulse{50%{box-shadow:0 0 0 9px rgba(245,130,32,.05)}}
/* ---- signature pad ---- */
.sigwrap{position:relative;user-select:none;-webkit-user-select:none;border:2px dashed #c9cde0;border-radius:14px;background:#fff;touch-action:none;overflow:hidden}
.sigwrap canvas{display:block;width:100%;height:190px;cursor:crosshair;touch-action:none}
.sigwrap .hint{position:absolute;left:0;right:0;bottom:44px;text-align:center;color:#b3b8cf;pointer-events:none;font-size:14px}
.sigwrap .base{position:absolute;left:24px;right:24px;bottom:38px;border-bottom:1px solid #d8dbe8;pointer-events:none}
.sigwrap.signed{border-color:var(--or);border-style:solid}.sigwrap.signed .hint{display:none}
.sigimg{max-height:110px;max-width:100%;display:block;background:#fff;border:1px solid var(--line);border-radius:10px;padding:6px}
/* ---- thank-you ---- */
.thanks{text-align:center;padding:34px 22px}.thanks .check{width:84px;height:84px;margin:0 auto 12px;border-radius:50%;background:var(--grad);display:grid;place-items:center;box-shadow:0 10px 26px rgba(226,86,27,.35);animation:pop .6s var(--ease) both}
.thanks .check svg{width:44px;height:44px;stroke:#fff;stroke-width:3.2;fill:none;stroke-dasharray:40;stroke-dashoffset:40;animation:draw .6s .35s ease forwards}
.thanks h1{margin:6px 0}.thanks .sum{display:inline-block;text-align:left;background:#fafbfe;border:1px solid var(--line);border-radius:12px;padding:12px 18px;margin:14px 0}
@keyframes pop{0%{transform:scale(.3);opacity:0}70%{transform:scale(1.08)}100%{transform:scale(1);opacity:1}}@keyframes draw{to{stroke-dashoffset:0}}
/* ---- admin ---- */
.gcard{border-left:5px solid var(--line)}.gcard.st1{border-left-color:#6b7be0}.gcard.st2{border-left-color:var(--ok)}.gcard.st3{border-left-color:var(--or)}.gcard.st4{border-left-color:var(--yl)}.gcard.st5{border-left-color:var(--navy)}
.gcard .top{display:flex;gap:10px;align-items:flex-start;flex-wrap:wrap}.gcard .top .t{flex:1;min-width:200px}.gcard .acts{display:flex;gap:6px;flex-wrap:wrap}
.stbox{background:#fafbfe;border:1px solid var(--line);border-radius:12px;padding:12px;margin-top:10px}
.hist{font-size:13px;margin:6px 0 0;padding-left:18px}.hist li{margin:2px 0}
.bulk{position:sticky;top:58px;z-index:5;background:#fff;border:1px solid var(--or);border-radius:14px;padding:10px 12px;box-shadow:0 8px 22px rgba(26,29,58,.1)}
.att td,.att th{vertical-align:middle}.att .seg{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden}.att .seg label{margin:0;padding:4px 12px;font-weight:400;cursor:pointer;font-size:14px}
.att .seg input{display:none}.att .seg label:has(input:checked).y{background:var(--ok);color:#fff}.att .seg label:has(input:checked).n{background:var(--bad);color:#fff}
.sigprev{height:70px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:4px;display:block;margin:6px 0}
/* ---- entrance animations ---- */
@keyframes up{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.anim>*{animation:up .5s var(--ease) both}.anim>*:nth-child(2){animation-delay:.06s}.anim>*:nth-child(3){animation-delay:.12s}.anim>*:nth-child(4){animation-delay:.18s}.anim>*:nth-child(5){animation-delay:.24s}.anim>*:nth-child(n+6){animation-delay:.3s}
@media(max-width:1000px){.dash{grid-template-columns:repeat(3,1fr)}.steps{grid-template-columns:repeat(2,1fr)}}
@media(max-width:820px){.shell{display:block}.side{position:static;width:auto;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 12px}.side:after{display:none}
  .logoplate{width:140px;margin:0;padding:6px 10px}.side nav{flex-direction:row;flex-wrap:nowrap;overflow-x:auto;flex:1 1 100%;gap:6px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.side nav::-webkit-scrollbar{display:none}
  .side nav a{padding:6px 12px;font-size:14px;white-space:nowrap;flex:0 0 auto;background:var(--navy2)}.side nav a.admin{margin-top:0}.side nav a:hover{transform:none}.sidefoot{display:none}
  .topbar{padding:8px 14px}.hero{padding:20px;border-radius:18px}.hero h1{font-size:22px}.hero.xl{padding:26px 20px 22px}.cta{grid-template-columns:1fr}.cta a{min-height:96px;padding:20px}
  main{padding:16px 14px 30px}}
@media(max-width:520px){.dash{grid-template-columns:repeat(2,1fr)}.dash b{font-size:28px}.tb-sub{display:none}.steps{grid-template-columns:1fr}.tl div{font-size:11px}.tl small{display:none}.card{padding:16px}.linkbox{flex-direction:column}
  .row>*{min-width:100%}.row>.fit{min-width:0}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.live{animation:none}}
/* ---- printable A4 sheets ---- */
.sheet{background:#fff;color:#000;border:1px solid var(--line);border-radius:6px;padding:14mm 12mm;max-width:210mm;margin:14px auto;font-size:13px;line-height:1.45;overflow-x:auto}
.sheet .sh{display:flex;align-items:center;gap:14px;border-bottom:3px solid var(--or);padding-bottom:8px;margin-bottom:10px}.sheet .sh img{height:46px}.sheet .sh h3{margin:0;font-size:16px;font-weight:600}.sheet .sh p{margin:0;font-size:12px;color:#444}
.sheet h4{margin:12px 0 5px;font-size:14px;font-weight:600;color:#c2410c}
.sheet .f{display:flex;gap:8px;margin:3px 0}.sheet .f b{flex:0 0 auto;font-weight:500}.sheet .f span{flex:1;border-bottom:1px dotted #777;min-height:18px;padding:0 4px}
.sheet table{font-size:12px}.sheet th,.sheet td{border:1px solid #444;padding:3px 5px;color:#000}.sheet th{background:#fde7d3;font-weight:500;text-align:center}.sheet td.c{text-align:center}
.sheet .box{display:inline-block;width:11px;height:11px;border:1px solid #000;margin-right:4px;vertical-align:-1px;text-align:center;line-height:9px;font-size:10px}
.sheet .sig{display:flex;gap:12px;margin-top:14px}.sheet .sig>div{flex:1;text-align:center;border:1px solid #444;border-radius:4px;padding:8px 6px;font-size:12px}
.sheet .sig .line{height:48px;border-bottom:1px dotted #000;margin:0 14px 4px;display:flex;align-items:flex-end;justify-content:center}.sheet .sig .line img{max-height:46px;max-width:100%}
.sheet .foot{margin-top:8px;font-size:11px;color:#555;display:flex;justify-content:space-between;gap:10px}
.sheet .stamp{display:inline-block;border:1.5px solid #1f8a4c;color:#1f8a4c;border-radius:4px;padding:0 6px;font-size:11px;font-weight:600}
.sheet.pb{page-break-after:always}
@page{size:A4;margin:10mm}
@media print{.side,.topbar,.sitefoot,.tabs,.noprint{display:none!important}body{background:#fff}.shell,.content{display:block}main{max-width:none;padding:0}.sheet{border:0;margin:0;padding:0;max-width:none;border-radius:0;overflow:visible}.card{box-shadow:none}*{animation:none!important}}
/* ---- staff lunch ---- */
.narrow{max-width:520px;margin-left:auto;margin-right:auto}
.daygrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:6px}
.daycard{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;position:relative;overflow:hidden;display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.daycard:before{content:"";position:absolute;left:0;top:0;right:0;height:4px;background:var(--line)}.daycard.open:before{background:var(--grad)}
.daycard.open{box-shadow:0 10px 24px rgba(226,86,27,.12);border-color:#f7c39a}
.daycard>b{font-size:22px;font-weight:600;color:var(--navy)}.daycard>small{color:var(--mut);font-size:13px}
.daycard .cnt{font-size:13px;color:var(--mut);margin-top:4px}.daycard .cnt b{font-size:20px;color:var(--or2);font-weight:600}
.rules{margin:0;padding-left:22px}.rules li{margin:6px 0}.rules b{font-weight:500;color:var(--navy)}
.pick{border:1px solid var(--line);border-radius:14px;margin:12px 0;background:#fcfcfe;transition:border-color .2s,box-shadow .2s}
.pick.on{border-color:var(--or);box-shadow:0 6px 18px rgba(245,130,32,.12);background:#fff}
.pickhead{display:flex;align-items:center;gap:12px;margin:0;padding:14px 16px;cursor:pointer}.pickhead input{width:22px;height:22px}
.pickhead span{flex:1}.pickhead b{display:block;font-weight:500}.pickhead small{color:var(--mut);font-weight:400;font-size:13px}
.pick .menus{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px;padding:0 16px 14px}
.pick:not(.on) .menus{opacity:.55}
.menu{display:flex;align-items:center;gap:10px;margin:0;border:1px solid var(--line);border-radius:12px;padding:10px 12px;cursor:pointer;font-weight:400;background:#fff;transition:background .15s,border-color .15s}
.menu:hover{border-color:var(--or)}.menu small{display:block;font-size:12px;color:var(--mut)}
.menu.allergy{border-style:dashed}
.menu:has(input:checked){background:var(--grad);color:#fff;border-color:transparent}.menu:has(input:checked) small{color:#fff4cc}
.pick .allergybox{padding:0 16px 14px}.pick .allergybox label{margin-top:0}
.agree{display:flex;gap:10px;align-items:center;font-weight:400;margin:16px 0 4px}.agree input{width:20px;height:20px}
.sumrow{padding:6px 0;border-bottom:1px dashed var(--line)}.sumrow:last-child{border-bottom:0}
.chk td,.chk th{vertical-align:middle}.chk td.c{text-align:center}.chk input{width:20px;height:20px}.chk tr.got{background:#eefaf2}
.menus-adm td{border:0;padding:4px 6px 4px 0}.menus-adm tr.off input.mname{color:var(--mut);text-decoration:line-through}
td.fit{width:1%;white-space:nowrap}
.sheet .plist td{height:30px}
.sheet .sig .line{height:52px}
.row>input,.row>select{width:auto}
/* ---- duty + hours ---- */
.pickbody{padding:0 16px 14px}.pickbody .menus{padding:0}.pickbody .allergybox{padding:10px 0 0}
.sub-h{font-size:14px;font-weight:500;color:var(--navy);margin:12px 0 6px}
.ico.sm{width:16px;height:16px;vertical-align:-3px;margin-right:4px}
.menu.none{border-style:dotted;color:var(--mut)}
.myday{padding:10px 0;border-bottom:1px dashed var(--line);display:flex;flex-direction:column;gap:4px;text-align:left}.myday:last-child{border-bottom:0}
.sheet.wide{max-width:297mm}.sheet .plist td{height:28px}
.chk th,.chk td{white-space:nowrap}
