:root{--sage:#749981;--sage-deep:#5c8068;--sage-dark:#3f5447;--ink:#2e3a32;--bg:#f6f8f5;--card:#fff;--line:#e2e9e3;--muted:#7b867e;--soft:#eef2ee;--radius:.6vh;--bar-radius:.35vh;--shadow-sm:0 1px 2px rgba(46,58,50,.05);--shadow-md:0 6px 18px rgba(46,58,50,.09);--ease-out:cubic-bezier(.2,.8,.2,1)}*{margin:0;padding:0;box-sizing:border-box}body,html{height:100%;overflow:hidden}body{background:var(--bg);color:var(--ink);font-family:Poppins,-apple-system,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased}button{font-family:inherit}:focus-visible{outline:2px solid var(--sage-deep);outline-offset:2px}.board{display:grid;grid-template-rows:10vh 1fr 6vh;height:100vh}@keyframes rise{0%{opacity:0;transform:translateY(1.6vh)}to{opacity:1;transform:translateY(0)}}.rightcol .card,main>.card{animation:rise .55s var(--ease-out) both}.hero-card{animation-delay:.05s}.cutoff-card{animation-delay:.13s}.queue-card{animation-delay:.21s}.lb-card{animation-delay:.29s}.cal-card{animation-delay:.37s}.kg-card{animation-delay:.45s}header{animation:rise .5s var(--ease-out) both}footer{animation:rise .5s var(--ease-out) .5s both}header{background:var(--sage);color:#fff;display:flex;align-items:center;gap:2.4vh;padding:0 2.6vh}header img.logo{height:7.4vh;display:block;width:auto}.head-titles h1{font-size:2.4vh;font-weight:600;letter-spacing:.04em}.head-titles p{font-size:1.5vh;font-weight:300;opacity:.92;margin-top:.3vh}.asof{margin-left:auto;text-align:right}.asof .clock{font-size:4.2vh;font-weight:600;line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.asof .upd{font-size:1.4vh;font-weight:300;opacity:.95;margin-top:.5vh;display:flex;align-items:center;justify-content:flex-end;gap:.6vh}.asof .upd b{font-weight:600}.live-dot{width:1vh;height:1vh;border-radius:50%;background:hsla(0,0%,100%,.45);display:inline-block;flex:none}.live-dot.on{background:#b9f6ca;box-shadow:0 0 0 0 rgba(185,246,202,.7);animation:pulse 2.4s ease-out infinite}@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(185,246,202,.6)}70%{box-shadow:0 0 0 .9vh rgba(185,246,202,0)}to{box-shadow:0 0 0 0 rgba(185,246,202,0)}}.signout{background:hsla(0,0%,100%,.12);color:#fff;border:1px solid hsla(0,0%,100%,.25);border-radius:var(--radius);width:4.6vh;height:4.6vh;flex:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .25s var(--ease-out),transform .25s var(--ease-out)}.signout svg{width:2.2vh;height:2.2vh}.signout:hover{background:hsla(0,0%,100%,.24);transform:translateY(-1px)}.signout:active{transform:translateY(0)}main{display:grid;grid-template-columns:1.2fr 1fr 1fr;grid-template-rows:1.15fr 1fr;grid-gap:1.6vh;gap:1.6vh;padding:1.6vh 2.6vh}.card,main{min-height:0}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:2.2vh 2.4vh;display:flex;flex-direction:column;min-width:0;position:relative;overflow:hidden;box-shadow:var(--shadow-sm);transition:box-shadow .35s var(--ease-out),transform .35s var(--ease-out),border-color .35s var(--ease-out)}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:#d3ded5}.card-label{font-size:1.55vh;font-weight:600;text-transform:uppercase;letter-spacing:.14em;color:var(--sage-deep);text-align:center;width:100%}.rightcol{display:flex;flex-direction:column;gap:1.6vh;min-height:0;grid-column:3;grid-row:1/3}.rightcol .queue-card{flex:0 0 auto}.rightcol .kg-card{flex:1 1 auto;min-height:0}.hero-card{grid-column:1;grid-row:1;justify-content:flex-start}.hero-center{flex:1 1;display:flex;align-items:center;justify-content:center;min-height:0}.hero-stat{display:flex;align-items:baseline;gap:1.4vh}.hero-num{font-size:16vh;font-weight:600;line-height:1;color:var(--sage-dark);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.hero-unit{font-size:2.8vh;color:var(--muted);font-weight:400}.squircle-mark{position:absolute;right:-6vh;top:-6vh;width:25vh;height:25vh;opacity:.07;pointer-events:none;transition:transform .6s var(--ease-out),opacity .6s var(--ease-out)}.hero-card:hover .squircle-mark{transform:rotate(8deg) scale(1.04);opacity:.12}.cutoff-card{grid-column:2;grid-row:1;align-items:center;text-align:center}.ring-wrap{position:relative;flex:1 1;width:100%;display:flex;align-items:center;justify-content:center;min-height:0;margin-top:.6vh}.ring-wrap svg{height:100%;max-height:28vh;width:auto}.ring-track{fill:none;stroke:var(--soft);stroke-width:7}.ring-fill{fill:none;stroke:var(--sage);stroke-width:7;stroke-linecap:butt;transform:rotate(-90deg);transform-origin:50% 50%;transition:stroke-dashoffset 1s linear}.ring-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5vh}.ring-time{font-size:5.4vh;font-weight:600;line-height:1;color:var(--sage-dark);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ring-cap{font-size:1.4vh;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:500}.cutoff-foot{font-size:1.8vh;font-weight:500;margin-top:1.2vh;color:var(--sage-deep)}.cutoff-card.warn .ring-fill{stroke:var(--sage-dark);animation:glow 2s ease-in-out infinite}.queue-head{display:flex;flex-direction:column;align-items:center;gap:.1vh;margin-top:.6vh}.queue-num{font-size:10vh;font-weight:600;line-height:1;color:var(--sage-dark);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.queue-cap{font-size:1.9vh;color:var(--muted);font-weight:400;text-transform:uppercase;letter-spacing:.1em}.queue-sub{font-size:1.4vh;color:var(--muted);font-weight:300;margin-top:.3vh}.queue-list{margin-top:1.4vh;display:flex;flex-direction:column;gap:1vh}.queue-row{display:grid;grid-template-columns:1fr auto;align-items:center;grid-gap:.5vh 1.4vh;gap:.5vh 1.4vh;border-radius:var(--bar-radius);padding:.4vh .8vh;margin:0 -.8vh;transition:background .25s var(--ease-out)}.queue-row:hover{background:var(--soft)}.queue-name{font-size:2vh;font-weight:500;line-height:1.2}.queue-count{font-size:2.6vh;font-weight:600;color:var(--sage-dark);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.queue-status{grid-column:1/-1;display:flex;align-items:center;gap:.7vh;font-size:1.35vh;font-weight:500}.queue-status .chip{display:inline-block;padding:.2vh .9vh;border-radius:var(--bar-radius);letter-spacing:.06em;text-transform:uppercase;font-size:1.15vh;font-weight:600}.queue-row.open .chip{background:var(--sage);color:#fff}.queue-row.open .queue-status{color:var(--sage-deep)}.queue-row.shut .chip{background:var(--soft);color:var(--muted)}.empty-note,.queue-row.shut .queue-count,.queue-row.shut .queue-name,.queue-row.shut .queue-status{color:var(--muted)}.empty-note{text-align:center;font-weight:300;font-size:1.7vh;padding:1.6vh 0}.lb-card{grid-column:1;grid-row:2}.lb{display:flex;flex-direction:column;justify-content:space-evenly;flex:1 1;min-height:0;margin-top:.4vh;width:100%;max-width:46vh;align-self:center}.lb-row{display:grid;grid-template-columns:5.4vh 1fr auto;grid-gap:1.8vh;gap:1.8vh;align-items:center;border-radius:var(--radius);padding:.5vh .9vh;margin:0 -.9vh;transition:background .25s var(--ease-out)}.lb-ava,.lb-row:hover{background:var(--soft)}.lb-ava{width:5.4vh;height:5.4vh;border-radius:var(--radius);color:var(--sage-deep);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1.9vh;transition:transform .25s var(--ease-out)}.lb-row:hover .lb-ava{transform:scale(1.06)}.lb-row.first .lb-ava{background:var(--sage);color:#fff}.lb-mid{min-width:0}.lb-name{font-size:2.2vh;font-weight:500;white-space:nowrap}.lb-crown{font-size:1.9vh;margin-left:.7vh}.lb-bar{margin-top:.7vh;height:1.3vh;background:var(--soft);overflow:hidden}.lb-bar,.lb-bar i{border-radius:var(--bar-radius)}.lb-bar i{display:block;height:100%;background:var(--sage);width:0;transition:width 1.4s var(--ease-out)}.lb-row.first .lb-bar i{background:var(--sage-dark)}.lb-items{font-size:3.4vh;font-weight:600;color:var(--sage-dark);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right;line-height:1}.lb-items small{display:block;font-size:1.2vh;font-weight:500;color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin-top:.4vh}.cal-card{grid-column:2;grid-row:2}.cal{display:flex;flex-direction:column;gap:.5vh;flex:1 1;margin-top:1.2vh;min-height:0}.cal-head{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:.5vh;gap:.5vh}.cal-head div{text-align:center;font-size:1.3vh;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding-bottom:.3vh}.cal-body{grid-template-rows:repeat(4,1fr);grid-gap:.5vh;flex:1 1;min-height:0}.cal-body,.cal-week{display:grid;gap:.5vh}.cal-week{grid-template-columns:repeat(7,1fr);grid-gap:.5vh}.cal-day{border:1px solid var(--line);border-radius:var(--bar-radius);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3vh;min-height:0;position:relative;transition:transform .25s var(--ease-out),box-shadow .25s var(--ease-out)}.cal-day.due:hover{transform:scale(1.06);box-shadow:var(--shadow-md);z-index:1}.cal-day .dn{font-size:1.45vh;font-weight:400;color:var(--muted);line-height:1}.cal-day.due{background:var(--sage);border-color:var(--sage)}.cal-day.due .dn{color:hsla(0,0%,100%,.8);font-weight:500}.cal-day.due .qty{font-size:2.4vh;font-weight:600;color:#fff;line-height:1}.cal-day.due .qlab{font-size:1vh;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:hsla(0,0%,100%,.85);line-height:1}.cal-day.today{outline:2px solid var(--sage-dark);outline-offset:-2px}.cal-day.today .dn{color:var(--sage-dark);font-weight:600}.cal-day.today.due .dn{color:#fff}.cal-day.muted{background:var(--soft);border-color:var(--soft)}.cal-day.muted .dn{color:#c2cbc4}@keyframes glow{0%,to{opacity:1}50%{opacity:.55}}.kg-card{justify-content:space-between}.kg-num-row{display:flex;align-items:center;justify-content:center;gap:1.4vh;flex:1 1}.kg-num{font-size:9vh;font-weight:600;line-height:1;color:var(--sage-dark);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.kg-unit{font-size:2.8vh;font-weight:500}.kg-fact,.kg-unit{color:var(--muted)}.kg-fact{font-size:2vh;font-weight:300;border-top:1px solid var(--line);padding-top:1.4vh;text-align:center;width:100%}.kg-fact b{color:var(--sage-dark);font-weight:600}footer{background:var(--card);border-top:1px solid var(--line);display:flex;align-items:center;overflow:hidden}.ticker-inner{display:inline-flex;white-space:nowrap;animation:ticker 40s linear infinite}footer:hover .ticker-inner{animation-play-state:paused}.ticker-inner span{font-size:2vh;padding:0 5vh;font-weight:300;color:var(--muted)}.ticker-inner span b{font-weight:600;color:var(--sage-dark)}.ticker-inner span:after{content:"•";margin-left:10vh;color:var(--sage)}@keyframes ticker{0%{transform:translateX(0)}to{transform:translateX(-50%)}}.board.loading{justify-content:center}.board.loading,.loading-mark{display:flex;align-items:center}.loading-mark{flex-direction:column;gap:2.2vh;animation:rise .5s var(--ease-out) both}.loading-mark img{height:9vh;width:auto}.loading-mark p{color:var(--muted);font-weight:300;font-size:1.8vh}.loading-bar{width:22vh;height:.7vh;background:var(--soft);border-radius:1vh;overflow:hidden}.loading-bar i{display:block;height:100%;width:35%;background:var(--sage);border-radius:1vh;animation:slide 1.2s var(--ease-out) infinite}@keyframes slide{0%{transform:translateX(-110%)}to{transform:translateX(320%)}}.login-screen{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(120vh 120vh at 85% -20%,rgba(116,153,129,.16),transparent 60%),radial-gradient(90vh 90vh at -10% 110%,rgba(116,153,129,.13),transparent 60%),var(--bg)}.login-card{width:100%;max-width:400px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:40px 36px 28px;text-align:center;box-shadow:0 18px 50px rgba(46,58,50,.1);animation:rise .55s var(--ease-out) both}.login-logo{height:62px;width:auto;margin-bottom:18px}.login-card h1{font-size:1.35rem;font-weight:600;letter-spacing:.03em;color:var(--ink)}.login-sub{font-size:.88rem;color:var(--muted);font-weight:300;margin:.35rem 0 1.6rem}.login-field{display:block;text-align:left;margin-bottom:1rem}.login-field span{display:block;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--sage-deep);margin-bottom:.35rem}.login-field input{width:100%;font:inherit;font-size:1rem;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:.7rem .85rem;transition:border-color .25s var(--ease-out),box-shadow .25s var(--ease-out),background .25s var(--ease-out)}.login-field input:hover{border-color:#c7d4c9}.login-field input:focus{outline:none;background:#fff;border-color:var(--sage);box-shadow:0 0 0 3px rgba(116,153,129,.22)}.login-error{background:#fbefef;color:#a4453f;border:1px solid #f0d9d7;border-radius:9px;font-size:.85rem;font-weight:500;padding:.6rem .8rem;margin-bottom:1rem;animation:rise .3s var(--ease-out) both}.login-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:.55rem;background:var(--sage);color:#fff;border:none;border-radius:9px;font-size:1rem;font-weight:600;letter-spacing:.02em;padding:.8rem 1rem;cursor:pointer;transition:background .25s var(--ease-out),transform .2s var(--ease-out),box-shadow .25s var(--ease-out)}.login-btn:hover:not(:disabled){background:var(--sage-deep);transform:translateY(-1px);box-shadow:0 8px 20px rgba(92,128,104,.35)}.login-btn:active:not(:disabled){transform:translateY(0);box-shadow:none}.login-btn:disabled{opacity:.75;cursor:default}.login-spinner{width:1rem;height:1rem;flex:none;border:2px solid hsla(0,0%,100%,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.login-foot{margin-top:1.6rem;font-size:.75rem;color:var(--muted);font-weight:300}.login-card.shake{animation:shake .45s var(--ease-out)}@keyframes shake{10%,90%{transform:translateX(-2px)}20%,80%{transform:translateX(4px)}30%,50%,70%{transform:translateX(-6px)}40%,60%{transform:translateX(6px)}}@media (max-height:560px),(max-width:1100px){body,html{overflow:auto;height:auto}:root{--radius:10px;--bar-radius:6px}.board{display:flex;flex-direction:column;height:auto;min-height:100dvh}header{position:-webkit-sticky;position:sticky;top:0;z-index:10;padding:12px 16px;gap:14px;box-shadow:0 2px 12px rgba(46,58,50,.12)}header img.logo{height:42px}.head-titles h1{font-size:1.05rem}.head-titles p{font-size:.74rem}.asof .clock{font-size:1.5rem}.asof .upd{font-size:.7rem;gap:5px}.live-dot{width:7px;height:7px}.signout{width:38px;height:38px}.signout svg{width:17px;height:17px}main{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none;grid-auto-rows:auto;grid-gap:14px;gap:14px;padding:14px 16px 18px}.card{padding:18px}.card-label{font-size:.74rem}.cutoff-card,.hero-card{grid-column:auto;grid-row:auto}.rightcol{display:contents}.cal-card,.lb-card{grid-column:auto;grid-row:auto}.hero-center{padding:14px 0}.hero-stat{gap:10px}.hero-num{font-size:clamp(3.4rem,12vw,5.5rem)}.hero-unit{font-size:1rem}.squircle-mark{right:-44px;top:-44px;width:170px;height:170px}.ring-wrap{margin-top:8px;padding:6px 0}.ring-wrap svg{height:auto;width:min(58%,210px);max-height:none}.ring-time{font-size:1.8rem}.ring-cap{font-size:.66rem}.cutoff-foot{font-size:.85rem;margin-top:10px}.queue-head{gap:2px;margin-top:4px}.queue-num{font-size:3.2rem}.queue-cap{font-size:.8rem}.queue-sub{font-size:.72rem}.queue-list{margin-top:12px;gap:8px}.queue-row{padding:6px 8px;margin:0 -8px}.queue-name{font-size:.95rem}.queue-count{font-size:1.15rem}.queue-status{font-size:.7rem;gap:6px}.queue-status .chip{font-size:.6rem;padding:2px 8px}.empty-note{font-size:.85rem;padding:14px 0}.kg-num-row{gap:10px;padding:14px 0}.kg-num{font-size:clamp(2.6rem,10vw,4rem)}.kg-unit{font-size:1.1rem}.kg-fact{font-size:.85rem;padding-top:12px}.lb{max-width:none;margin-top:6px;gap:10px}.lb-row{grid-template-columns:44px 1fr auto;gap:12px;padding:6px 8px;margin:0 -8px}.lb-ava{width:44px;height:44px;font-size:.9rem}.lb-name{font-size:.95rem}.lb-crown{font-size:.85rem;margin-left:6px}.lb-bar{height:8px;margin-top:6px}.lb-items{font-size:1.4rem}.lb-items small{font-size:.55rem;margin-top:3px}.cal{gap:4px;margin-top:10px}.cal-head div{font-size:.62rem}.cal-body{gap:4px;grid-template-rows:none;grid-auto-rows:auto}.cal-week{gap:4px}.cal-day{min-height:52px;gap:2px;padding:4px 2px}.cal-day .dn{font-size:.68rem}.cal-day.due .qty{font-size:.92rem}.cal-day.due .qlab{font-size:.5rem}footer{padding:10px 0}.ticker-inner span{font-size:.82rem;padding:0 28px}.ticker-inner span:after{margin-left:56px}.loading-mark img{height:56px}.loading-mark p{font-size:.9rem}.loading-bar{width:150px;height:5px}}@media (max-width:640px){header{padding:10px 12px;gap:10px}header img.logo{height:32px}.head-titles h1{font-size:.9rem;white-space:nowrap}.asof .clock,.head-titles p{display:none}.asof .upd{white-space:nowrap;font-size:.72rem;margin-top:0}.upd-extra{display:none}.signout{width:34px;height:34px;flex:none}main{grid-template-columns:1fr;padding:12px 12px 16px;gap:12px}.cal-day{min-height:46px}.login-card{padding:32px 24px 22px}}@media (hover:none){.card:hover{transform:none;box-shadow:var(--shadow-sm)}.cal-day.due:hover{transform:none;box-shadow:none}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}.ticker-inner{animation:none}}