*{box-sizing:border-box}body,html{margin:0;height:100%}body{background:radial-gradient(1100px 700px at 18% -10%,hsl(var(--cakeup-blue)/.1),transparent 60%),radial-gradient(900px 600px at 110% 110%,hsl(var(--cakeup-blue)/.07),transparent 55%),hsl(var(--background));font-family:var(--font-sans);color:hsl(var(--foreground));-webkit-font-smoothing:antialiased;min-height:100%}body:has(>.phone){display:flex;align-items:center;justify-content:center;padding:28px 16px}.phone{width:402px;height:858px;background:hsl(var(--background));border-radius:48px;position:relative;overflow:hidden;box-shadow:0 2px 6px rgba(0,0,0,.04),0 30px 70px -20px rgba(30,40,80,.35),0 0 0 11px #111,0 0 0 13px #2a2a2e}.phone .notch{position:absolute;top:0;left:50%;transform:translateX(-50%);width:128px;height:32px;background:#111;border-radius:0 0 20px 20px;z-index:60}.screen{position:absolute;inset:0;display:flex;flex-direction:column;overflow:hidden}.statusbar{height:52px;display:flex;align-items:flex-end;justify-content:space-between;padding:0 28px 7px;font-size:14px;font-weight:700;flex-shrink:0;font-family:var(--font-mono)}.statusbar .right{display:flex;gap:7px;align-items:center}.statusbar svg{width:17px;height:17px}.scroll{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.scroll::-webkit-scrollbar{display:none}.scroll{scrollbar-width:none}.appbar{position:sticky;top:0;z-index:40;background:hsl(var(--background)/.88);backdrop-filter:blur(10px);border-bottom:1px solid hsl(var(--border)/.45);padding:12px 18px;justify-content:space-between;min-height:56px}.appbar,.appbar .l{display:flex;align-items:center}.appbar .l{gap:11px;min-width:0}.appbar .mark{width:38px;height:38px;border-radius:11px;background:hsl(var(--primary));display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:var(--shadow-soft)}.appbar .mark svg{width:21px;height:21px;color:#fff}.appbar .tt{font-size:16px;font-weight:700;letter-spacing:-.01em;line-height:1.1}.appbar .ts{font-size:12px;color:hsl(var(--muted-foreground));font-weight:500;margin-top:1px}.appbar .av{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:13px;font-weight:700;flex-shrink:0}.appbar.sub{padding-top:10px;padding-bottom:10px}.iconbtn{width:40px;height:40px;border-radius:11px;border:1px solid hsl(var(--border)/.6);background:hsl(var(--card));display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;color:hsl(var(--foreground))}.iconbtn:active{transform:scale(.95)}.iconbtn svg{width:19px;height:19px}.bottomnav{position:absolute;left:0;right:0;bottom:0;z-index:50;background:hsl(var(--card));box-shadow:var(--shadow-nav);border-radius:24px 24px 0 0;padding-bottom:18px;justify-content:space-around;height:82px;border-top:1px solid hsl(var(--border)/.4)}.bottomnav,.navitem{display:flex;align-items:center}.navitem{flex-direction:column;gap:4px;min-width:62px;color:hsl(var(--muted-foreground));background:none;border:0;cursor:pointer;font-family:inherit;padding:8px 4px}.navitem svg{width:23px;height:23px}.navitem span{font-size:10.5px;font-weight:600}.navitem.on{color:hsl(var(--primary))}.navitem .dot{position:absolute;top:6px;margin-left:16px;width:7px;height:7px;border-radius:50%;background:hsl(var(--destructive))}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:48px;padding:0 18px;border-radius:14px;font-size:15px;font-weight:600;border:0;cursor:pointer;font-family:inherit;transition:transform .2s,background .15s;white-space:nowrap}.btn:active{transform:scale(.97)}.btn svg{width:18px;height:18px}.btn-primary{background:hsl(var(--primary));color:#fff;box-shadow:var(--shadow-soft)}.btn-primary:disabled{opacity:.45;cursor:not-allowed}.btn-outline{background:hsl(var(--card));color:hsl(var(--foreground));border:1px solid hsl(var(--border))}.btn-ghost{background:transparent;color:hsl(var(--muted-foreground))}.btn-block{width:100%}.btn-lg{height:54px;font-size:16px;border-radius:16px}.mcard{background:hsl(var(--card));border:1px solid hsl(var(--border)/.6);border-radius:18px}.mcard.pad{padding:16px}.sec-h{justify-content:space-between;margin:22px 2px 12px}.sec-h,.sec-h h2{display:flex;align-items:center}.sec-h h2{font-size:15px;font-weight:700;gap:8px;margin:0}.sec-h h2 svg{width:17px;height:17px;color:hsl(var(--primary))}.sec-h .lnk{font-size:13px;font-weight:600;background:none;border:0;display:inline-flex;align-items:center;gap:2px;cursor:pointer;font-family:inherit}.ds-label,.sec-h .lnk{color:hsl(var(--muted-foreground))}.ds-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em}.mono{font-family:var(--font-mono)}.muted{color:hsl(var(--muted-foreground))}.shiftcard{background:var(--brand-gradient);color:#fff;border-radius:22px;padding:18px 20px;position:relative;overflow:hidden}.shiftcard .lbl{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;opacity:.9}.shiftcard .big{font-size:34px;font-weight:800;font-family:var(--font-mono);line-height:1;margin-top:8px;display:flex;align-items:baseline;gap:8px}.shiftcard .big small{font-size:15px;font-weight:600;opacity:.85}.shiftcard .bar{height:8px;border-radius:9999px;background:hsla(0,0%,100%,.25);margin-top:14px;overflow:hidden}.shiftcard .bar i{display:block;height:100%;border-radius:9999px;background:#fff}.shiftcard .ring{position:absolute;right:-30px;top:-30px;width:120px;height:120px;border-radius:50%;background:hsla(0,0%,100%,.1)}.taskrow{display:flex;align-items:center;gap:13px;padding:14px;background:hsl(var(--card));border:1px solid hsl(var(--border)/.6);border-radius:16px;cursor:pointer;transition:transform .15s;width:100%;text-align:left;font-family:inherit}.taskrow:active{transform:scale(.985)}.taskrow .em{width:46px;height:46px;border-radius:13px;background:hsl(var(--muted)/.6);display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}.taskrow .em.warn{background:hsl(38 92% 50%/.15)}.taskrow .em.crit{background:hsl(0 84% 60%/.12)}.taskrow .em.ok{background:rgba(33,196,93,.14)}.taskrow .ti{font-size:15px;font-weight:700;line-height:1.25}.taskrow .mt{font-size:12.5px;margin-top:3px}.taskrow .chev,.taskrow .mt{color:hsl(var(--muted-foreground))}.taskrow .chev{flex-shrink:0}.mbadge{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border-radius:9999px;font-size:11.5px;font-weight:700;white-space:nowrap}.mbadge svg{width:12px;height:12px}.st-ok{background:rgba(33,196,93,.15);color:#1f7a40}.st-warn{background:hsl(38 92% 50%/.16);color:#ae6613}.st-crit{background:hsl(0 84% 60%/.13);color:#ca2121}.st-new{background:rgba(36,99,235,.12);color:#2357c7}.st-grey{background:hsl(var(--muted)/.7);color:hsl(var(--muted-foreground))}.eqcard{background:hsl(var(--card));border:1px solid hsl(var(--border)/.6);border-radius:18px;padding:14px;margin-bottom:11px}.eqcard .top{gap:11px}.eqcard .ei,.eqcard .top{display:flex;align-items:center}.eqcard .ei{width:42px;height:42px;border-radius:12px;justify-content:center;flex-shrink:0}.eqcard .ei svg{width:21px;height:21px}.ei-fridge{background:rgba(36,99,235,.12);color:#265fd9}.ei-freezer{background:hsl(195 70% 50%/.14);color:#258eb1}.eqcard .en{font-size:14.5px;font-weight:700;line-height:1.2}.eqcard .el{font-size:12px;color:hsl(var(--muted-foreground));margin-top:2px}.eqcard .slots{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:13px}.slot{border:1.5px solid hsl(var(--border));border-radius:14px;padding:11px 13px;cursor:pointer;background:hsl(var(--muted)/.25);transition:border-color .15s,background .15s}.slot:active{transform:scale(.98)}.slot .sl{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:hsl(var(--muted-foreground));display:flex;align-items:center;gap:5px}.slot .sl svg{width:13px;height:13px}.slot .sv{font-size:22px;font-weight:800;font-family:var(--font-mono);margin-top:5px;line-height:1}.slot.empty .sv{color:hsl(var(--muted-foreground));font-weight:600}.slot.ok{border-color:rgba(33,196,93,.5);background:rgba(33,196,93,.08)}.slot.ok .sv{color:#218345}.slot.bad{border-color:hsl(var(--destructive)/.6);background:hsl(0 84% 60%/.08)}.slot.bad .sv{color:hsl(var(--destructive))}.sheet-scrim{position:absolute;z-index:80;background:rgba(20,20,30,.4);backdrop-filter:blur(2px);display:flex;align-items:flex-end;animation:scrimin .2s ease}@keyframes scrimin{0%{opacity:0}to{opacity:1}}.sheet{background:hsl(var(--card));border-radius:26px 26px 0 0;width:100%;max-height:92%;overflow-y:auto;padding:8px 20px 24px;animation:sheetup .28s cubic-bezier(.25,.46,.45,.94)}.sheet::-webkit-scrollbar{display:none}@keyframes sheetup{0%{transform:translateY(100%)}to{transform:none}}.sheet .grip{width:40px;height:5px;border-radius:9999px;background:hsl(var(--border));margin:6px auto 14px}.sheet .sh-t{font-size:18px;font-weight:700;text-align:center}.sheet .sh-s{font-size:13px;color:hsl(var(--muted-foreground));text-align:center;margin-top:3px}.valbox{margin:18px 0 8px;border-radius:18px;border:2px solid hsl(var(--border));padding:18px;text-align:center;background:hsl(var(--muted)/.3)}.valbox.ok{border-color:rgba(33,196,93,.55);background:rgba(33,196,93,.08)}.valbox.bad{border-color:hsl(var(--destructive)/.6);background:hsl(0 84% 60%/.07)}.valbox .v{font-size:46px;font-weight:800;font-family:var(--font-mono);line-height:1;letter-spacing:-.02em}.valbox .u{font-size:13px;color:hsl(var(--muted-foreground));margin-top:6px;font-weight:600}.valbox.bad .v{color:hsl(var(--destructive))}.valbox.ok .v{color:#1f7a40}.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}.key{height:60px;border-radius:16px;border:1px solid hsl(var(--border)/.7);background:hsl(var(--card));font-size:24px;font-weight:700;font-family:var(--font-mono);color:hsl(var(--foreground));cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .1s,transform .1s}.key:active{background:hsl(var(--muted)/.6);transform:scale(.96)}.key.act svg{width:24px;height:24px}.key.act{color:hsl(var(--primary))}.seg-big{display:flex;gap:8px;background:hsl(var(--muted)/.5);border-radius:15px;padding:5px}.seg-big button{flex:1;height:46px;border:0;background:transparent;border-radius:11px;font-family:inherit;font-size:15px;font-weight:700;color:hsl(var(--muted-foreground));cursor:pointer;display:flex;align-items:center;justify-content:center;gap:7px}.seg-big button svg{width:17px;height:17px}.seg-big button.on{background:hsl(var(--card));color:hsl(var(--foreground));box-shadow:var(--shadow-soft)}.mwarn{display:flex;gap:11px;padding:13px;border-radius:14px;background:hsl(0 84% 60%/.08);border:1px solid hsl(0 84% 60%/.25);margin:14px 0}.mwarn svg{width:19px;height:19px;flex-shrink:0;margin-top:1px}.mwarn .t,.mwarn svg{color:hsl(var(--destructive))}.mwarn .t{font-size:13.5px;font-weight:700}.mwarn .d{font-size:12.5px;color:hsl(var(--foreground)/.75);margin-top:2px;line-height:1.4}.mfield{margin-top:14px}.mfield label{display:block;font-size:13px;font-weight:600;margin-bottom:7px}.minp{width:100%;border-radius:13px;border:1px solid hsl(var(--border));background:hsl(var(--card));padding:12px 14px;font-size:15px;font-family:inherit;color:hsl(var(--foreground));outline:0;resize:vertical;min-height:54px;line-height:1.45}.minp:focus{border-color:hsl(var(--primary)/.55);box-shadow:0 0 0 3px hsl(var(--primary)/.16)}.mtoast-wrap{position:absolute;left:14px;right:14px;bottom:96px;z-index:90;display:flex;flex-direction:column;gap:8px;pointer-events:none}.mtoast{display:flex;gap:11px;align-items:flex-start;background:#15181f;color:#fff;border-radius:15px;padding:13px 15px;box-shadow:0 12px 30px -8px rgba(0,0,0,.5);animation:toastin .3s ease}.mtoast svg{width:19px;height:19px;flex-shrink:0;margin-top:1px}.mtoast.ok svg{color:#34d399}.mtoast.slack svg{color:#e9a8ed}.mtoast .m{font-size:13.5px;font-weight:700}.mtoast .s{font-size:12px;opacity:.8;margin-top:2px;line-height:1.35}@keyframes toastin{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.offline{display:flex;align-items:center;gap:9px;background:hsl(38 92% 50%/.14);color:#a56112;font-size:12.5px;font-weight:600;padding:9px 18px;border-bottom:1px solid hsl(38 92% 50%/.25)}.offline svg{width:16px;height:16px}.stack{display:flex;flex-direction:column;gap:10px}.fade-in{animation:mfadein .28s ease}@keyframes mfadein{0%{transform:translateY(8px)}to{transform:none}}.chips{display:flex;gap:8px;overflow-x:auto;padding:2px 0}.chips::-webkit-scrollbar{display:none}.chip{height:36px;padding:0 15px;border-radius:11px;border:1px solid hsl(var(--border));background:hsl(var(--card));font-size:13px;font-weight:600;color:hsl(var(--muted-foreground));white-space:nowrap;cursor:pointer;flex-shrink:0;font-family:inherit}.chip.on{background:hsl(var(--primary));color:#fff;border-color:hsl(var(--primary))}.msearch{display:flex;align-items:center;gap:9px;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:14px;padding:0 14px;height:48px}.msearch svg{width:18px;height:18px;color:hsl(var(--muted-foreground));flex-shrink:0}.msearch input{border:0;outline:0;background:transparent;font-family:inherit;font-size:15px;width:100%;color:hsl(var(--foreground))}.mroot{position:fixed;inset:0;background:hsl(var(--background));overflow:hidden;display:flex;flex-direction:column}.mroot .screen{position:absolute;inset:0}.mroot .appbar{padding-top:calc(12px + env(safe-area-inset-top))}.mroot .bottomnav{padding-bottom:calc(14px + env(safe-area-inset-bottom));position:absolute}.mroot .scroll{padding-bottom:env(safe-area-inset-bottom)}body,html{overscroll-behavior-y:none}.sheet{-webkit-overflow-scrolling:touch}.sheet .sheet-head{touch-action:none;cursor:grab;padding-top:2px}.sheet .sheet-foot{position:sticky;bottom:0;z-index:2;background:hsl(var(--card));padding:10px 0 calc(4px + env(safe-area-inset-bottom));margin-top:4px}.mroot .sheet-scrim{position:fixed;inset:0;z-index:1000}.mroot .sheet{max-height:88dvh}.mroot .minp,.mroot input,.mroot select,.mroot textarea{font-size:16px}.sheet-scrim{position:fixed;inset:0;z-index:1000}.sheet{max-height:88dvh;overscroll-behavior:contain}.sheet-head{touch-action:none;cursor:grab;padding-top:2px}.sheet-foot{position:sticky;bottom:0;z-index:2;background:hsl(var(--card));padding:10px 0 calc(6px + env(safe-area-inset-bottom));margin-top:4px}.sheet input,.sheet select,.sheet textarea{font-size:16px}.mroot .bottomnav{height:auto;min-height:58px;padding-top:8px;padding-bottom:calc(8px + env(safe-area-inset-bottom))}.mroot .navitem{padding:4px}.mroot .iconbtn{width:48px;height:48px}.mroot .btn-lg{height:56px}.sheet .iconbtn{width:48px;height:48px}[data-density=gloves] .key{height:74px;font-size:28px}[data-density=gloves] .key.act svg{width:28px;height:28px}[data-density=gloves] .btn{height:56px;font-size:16px}[data-density=gloves] .btn-lg{height:64px;font-size:18px}[data-density=gloves] .iconbtn{width:58px;height:58px}[data-density=gloves] .iconbtn svg{width:24px;height:24px}[data-density=gloves] .minp{min-height:60px;font-size:17px}[data-density=gloves] .slot{padding:16px 14px}[data-density=gloves] .slot .sv{font-size:26px}[data-density=gloves] .valbox .v{font-size:54px}[data-density=gloves] .navitem svg{width:26px;height:26px}[data-density=gloves] .navitem span{font-size:12px}[data-density=gloves] .taskrow{padding:16px}[data-density=gloves] .taskrow .ti{font-size:16.5px}[data-density=gloves] .taskrow .em{width:52px;height:52px}[data-density=gloves] .eqcard .en{font-size:16px}[data-density=gloves] .mcard.pad{padding:16px}[data-density=gloves] .sh-t{font-size:20px}[data-density=gloves] .sec-h h2{font-size:16.5px}.mroot input[type=date],.sheet input[type=date]{-webkit-appearance:none;appearance:none;text-align:left}.mroot input[type=date]::-webkit-date-and-time-value{text-align:left}