html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}img{max-width:100%}[hidden]{display:none!important}:root{--bg:#fff8e1;--surface:#fff;--surface2:#fdf3d6;--sunk:#f6e9c8;--ink:#3e2410;--ink2:#7f4e23;--muted:#9c7f62;--line:#e7d6b6;--sky:#9bd5e0;--skyDeep:#256f7f;--skyWash:#e4f4f8;--red:#d83533;--redWash:#fbe4e3;--butter:#f4ec92;--good:#2f7d5b;--onSky:#123f49;--onRed:#fff;--r:14px;--shadow:0 1px 0 var(--line), 0 6px 18px #3e24100f;--f-sans:"IBM Plex Sans KR",-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;--f-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace}html,body{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--f-sans);-webkit-text-size-adjust:100%;margin:0;font-size:15px;line-height:1.55}*{box-sizing:border-box}button{font:inherit;color:inherit;cursor:pointer}input,select{font:inherit;color:inherit}:focus-visible{outline:2.5px solid var(--skyDeep);outline-offset:2px;border-radius:6px}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}#app{flex-direction:column;max-width:520px;min-height:100%;margin:0 auto;display:flex}.topbar{top:env(safe-area-inset-top,0px);z-index:20;background:var(--bg);border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:12px 16px;display:flex;position:sticky}.mark{align-items:center;gap:8px;min-width:0;margin-right:auto;display:flex}.mark img{flex:none;width:auto;height:26px;display:block}.mark b{letter-spacing:-.01em;white-space:nowrap;font-size:16px;font-weight:700}.mark span{font-family:var(--f-mono);letter-spacing:.14em;color:var(--muted);text-transform:uppercase;font-size:10px}.who{color:var(--ink2);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;overflow:hidden}.ghost{border:1px solid var(--line);color:var(--ink2);background:0 0;border-radius:999px;padding:5px 11px;font-size:12px}.ghost:hover{background:var(--surface2)}main{flex:1;padding:18px 16px 96px}.tabbar{z-index:30;background:var(--surface);border-top:1px solid var(--line);padding:6px 8px calc(6px + env(safe-area-inset-bottom,0px));display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar-inner{gap:2px;width:100%;max-width:520px;margin:0 auto;display:flex}.tab{color:var(--muted);background:0 0;border:0;border-radius:11px;flex-direction:column;flex:1;align-items:center;gap:3px;padding:8px 4px 7px;font-size:11.5px;font-weight:500;display:flex}.tab svg{stroke:currentColor;stroke-width:1.7px;fill:none;stroke-linecap:round;stroke-linejoin:round;width:21px;height:21px}.tab[aria-current=page]{color:var(--ink);background:var(--skyWash)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}.stack{flex-direction:column;gap:14px;display:flex}.eyebrow{font-family:var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-size:10.5px}h2{text-wrap:balance;margin:0;font-size:17px;font-weight:700}h3{margin:0;font-size:14px;font-weight:600}.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}.perf{background:radial-gradient(circle at 5.5px 5.5px, var(--bg) 4px, transparent 4.2px) 0 0/16px 11px repeat-x;border-top:1px solid var(--line);border-bottom:1px solid var(--line);height:11px}.clockcard{overflow:hidden}.clockcard .head{align-items:flex-start;gap:12px;padding:15px 18px 12px;display:flex}.today{color:var(--ink2);font-size:13px}.today b{color:var(--ink);font-size:15px;font-weight:600;display:block}.chip{background:var(--sunk);color:var(--ink2);border:1px solid var(--line);border-radius:999px;flex-shrink:0;align-items:center;gap:6px;margin-left:auto;padding:5px 11px;font-size:12px;font-weight:500;display:inline-flex}.chip .dot{background:var(--muted);border-radius:50%;flex:none;width:7px;height:7px}.chip.ok{background:var(--skyWash);color:var(--skyDeep);border-color:#0000}.chip.ok .dot{background:var(--good)}.chip.warn{background:var(--redWash);color:var(--red);border-color:#0000}.chip.warn .dot{background:var(--red)}.chip.live .dot{animation:1.6s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.25}}.bigclock{text-align:center;background:var(--surface2);padding:22px 18px 24px}.bigclock .hm{font-family:var(--f-mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:clamp(50px,17vw,68px);font-weight:600;line-height:1}.bigclock .hm .s{color:var(--muted);margin-left:4px;font-size:.42em;font-weight:400}.bigclock .state{color:var(--ink2);margin-top:9px;font-size:13.5px}.bigclock .state b{color:var(--ink);font-weight:600}.punchrow{grid-template-columns:1fr 1fr;gap:10px;display:grid}.punch{border-radius:var(--r);text-align:left;box-shadow:var(--shadow);border:0;flex-direction:column;gap:3px;padding:19px 14px 17px;transition:transform 80ms;display:flex}.punch:active{transform:translateY(1px)}.punch .lab{letter-spacing:-.01em;font-size:19px;font-weight:700}.punch .sub{opacity:.72;font-size:11.5px;font-family:var(--f-mono)}.punch.in{background:var(--sky);color:var(--onSky)}.punch.out{background:var(--red);color:var(--onRed)}.punch:disabled{background:var(--sunk);color:var(--muted);box-shadow:none;cursor:default}.saved{font-family:var(--f-mono);letter-spacing:.08em;color:var(--good);font-size:10.5px}.rows{padding:4px 0}.row{border-top:1px solid var(--line);align-items:center;gap:12px;padding:11px 16px;display:flex}.row:first-child{border-top:0}.row .k{color:var(--ink2);font-size:13.5px}.row .v{font-family:var(--f-mono);font-variant-numeric:tabular-nums;margin-left:auto;font-size:14.5px;font-weight:500}.row .v.big{font-size:17px;font-weight:600}.hole{background:var(--sunk);border-radius:50%;flex:none;width:9px;height:9px;box-shadow:inset 0 1px 1px #3e24102e}.sect-head{align-items:center;gap:10px;margin:2px 0 -2px;display:flex}.sect-head .eyebrow{margin-right:auto}.mnav{align-items:center;gap:8px;display:flex}.mnav b{font-family:var(--f-mono);text-align:center;flex:1;font-size:15px;font-weight:600}.mnav button{border:1px solid var(--line);background:var(--surface);border-radius:10px;width:36px;height:36px;font-size:16px;line-height:1}.mnav button:hover{background:var(--surface2)}.tiles{background:var(--line);border-radius:var(--r);border:1px solid var(--line);grid-template-columns:1fr 1fr;gap:1px;display:grid;overflow:hidden}.tile{background:var(--surface);padding:13px 15px}.tile .t{color:var(--muted);font-size:11.5px}.tile .n{font-family:var(--f-mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em;margin-top:2px;font-size:20px;font-weight:600}.tile .n small{color:var(--muted);margin-left:2px;font-size:12px;font-weight:400}.tile.total{background:var(--butter);color:#3e2410;grid-column:1/-1}.tile.total .t{color:#6b4a18}.tile.total .n{font-size:25px}.tablewrap{-webkit-overflow-scrolling:touch;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:340px;font-size:13px}th,td{text-align:right;border-top:1px solid var(--line);white-space:nowrap;padding:9px 8px}th{font-size:10.5px;font-family:var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);border-top:0;font-weight:500}th:first-child,td:first-child{text-align:left;padding-left:16px}th:last-child,td:last-child{padding-right:16px}td.num{font-family:var(--f-mono);font-variant-numeric:tabular-nums}tr.sun td:first-child{color:var(--red)}.open{color:var(--skyDeep);font-weight:500}label.field{display:block}label.field .lab{color:var(--ink2);margin-bottom:5px;font-size:12.5px;font-weight:500;display:block}input[type=text],input[type=tel],input[type=time],input[type=number],select{background:var(--sunk);border:1px solid var(--line);border-radius:10px;width:100%;padding:11px 12px;font-size:15px}input.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}textarea{background:var(--sunk);border:1px solid var(--line);width:100%;font-family:var(--f-mono);color:var(--ink);resize:vertical;white-space:pre;border-radius:10px;padding:11px 12px;font-size:12.5px;line-height:1.65;overflow-x:auto}.hint{color:var(--muted);margin-top:5px;font-size:11.5px}.btn{background:var(--sky);width:100%;color:var(--onSky);box-shadow:var(--shadow);border:0;border-radius:12px;padding:14px;font-size:15.5px;font-weight:600}.btn.quiet{background:var(--surface);color:var(--ink);border:1px solid var(--line)}.btn.danger{background:var(--surface);color:var(--red);border:1px solid var(--line)}.btn:disabled{background:var(--sunk);color:var(--muted);box-shadow:none}.btn.sm{border-radius:10px;width:auto;padding:9px 14px;font-size:13.5px}.toggle{border-top:1px solid var(--line);cursor:pointer;align-items:flex-start;gap:12px;padding:12px 16px;display:flex}.toggle:first-child{border-top:0}.toggle .txt{flex:1;min-width:0}.toggle .txt b{font-size:14px;font-weight:600;display:block}.toggle .txt span{color:var(--muted);font-size:12px}.sw{background:var(--sunk);border:1px solid var(--line);border-radius:999px;flex:none;width:44px;height:26px;margin-top:2px;transition:background .15s;position:relative}.sw:after{content:"";background:var(--surface);border-radius:50%;width:20px;height:20px;transition:left .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #3e24104d}.toggle input{opacity:0;pointer-events:none;position:absolute}.toggle input:checked+.sw{background:var(--sky);border-color:#0000}.toggle input:checked+.sw:after{left:20px}.toggle input:focus-visible+.sw{outline:2.5px solid var(--skyDeep);outline-offset:2px}.login{max-width:380px;margin:0 auto;padding:8vh 0 40px}.login .brand{text-align:center;margin-bottom:26px}.login .brand .logo{width:172px;max-width:60%;height:auto;margin:0 auto 14px;display:block}.login .brand h1{letter-spacing:-.01em;margin:0;font-size:23px;font-weight:700}.login .brand p{color:var(--muted);margin:5px 0 0;font-size:13.5px}.pinboxes{justify-content:center;gap:10px;display:flex;position:relative}.pinboxes input{opacity:0;background:0 0;border:0;width:100%;height:100%;padding:0;font-size:16px;position:absolute;inset:0}.pinbox{background:var(--sunk);border:1px solid var(--line);border-radius:12px;justify-content:center;align-items:center;width:52px;height:62px;display:flex}.pinbox b{background:var(--ink);opacity:0;border-radius:50%;width:13px;height:13px;transition:opacity .1s}.pinbox.filled b{opacity:1}.pinbox.cursor{border-color:var(--skyDeep);box-shadow:0 0 0 2.5px var(--skyWash)}.demo{border:1px dashed var(--line);background:var(--surface2);border-radius:12px;padding:12px 14px}.demo .eyebrow{margin-bottom:6px;display:block}.demo ul{flex-direction:column;gap:3px;margin:0;padding:0;list-style:none;display:flex}.demo li{color:var(--ink2);gap:8px;font-size:12.5px;display:flex}.demo li code{font-family:var(--f-mono);color:var(--ink);font-size:12px}.err{background:var(--redWash);color:var(--red);border-radius:10px;padding:10px 13px;font-size:13px;font-weight:500}.back{color:var(--muted);text-underline-offset:3px;background:0 0;border:0;padding:0;font-size:13px;text-decoration:underline}.slip{border:1px solid var(--line);background:#fff8e1;border-radius:12px;width:100%;height:auto;display:block}.demobadge{font-family:var(--f-mono);letter-spacing:.1em;text-transform:uppercase;background:var(--butter);color:#6b4a18;border-radius:6px;flex:none;padding:2px 6px;font-size:10px}.emp{border-top:1px solid var(--line);padding:13px 16px}.emp:first-child{border-top:0}.emp .top{align-items:center;gap:9px;display:flex}.emp .top b{font-size:14.5px;font-weight:600}.emp .top .ph{font-family:var(--f-mono);color:var(--muted);margin-left:auto;font-size:11.5px}.emp .grid{grid-template-columns:1fr 1fr;gap:9px;margin-top:10px;display:grid}.role{font-size:10px;font-family:var(--f-mono);letter-spacing:.08em;text-transform:uppercase;background:var(--skyWash);color:var(--skyDeep);border-radius:5px;padding:2px 5px}.emptystate{text-align:center;color:var(--muted);padding:26px 18px;font-size:13.5px}.toastwrap{left:0;right:0;bottom:calc(74px + env(safe-area-inset-bottom,0px));pointer-events:none;z-index:50;justify-content:center;padding:0 16px;display:flex;position:fixed}.toast{background:var(--ink);color:var(--bg);border-radius:999px;padding:9px 18px;font-size:13.5px;font-weight:500;box-shadow:0 8px 24px #3e241040}
