:root{--bg:#eef1f6;--surface:#fff;--text:#5b6676;--text-h:#0f1a2b;--border:#dfe4ec;--code-bg:#eef1f6;--brand:#2456e6;--out:#c2410c;--ok:#15803d;--warn:#b45309;--accent:#2456e6;--accent-bg:#2456e61a;--accent-border:#2456e673;--shadow:0 1px 2px #0f1a2b0f, 0 10px 28px -14px #0f1a2b38;--sans:"Pretendard", "Apple SD Gothic Neo", "Malgun Gothic", system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:16px/150% var(--sans);letter-spacing:-.01em;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0c1118;--surface:#151c26;--text:#98a4b5;--text-h:#eef2f8;--border:#263040;--code-bg:#1c2531;--ok:#4ade80;--warn:#fbbf24;--accent:#8aa9ff;--accent-bg:#8aa9ff24;--accent-border:#8aa9ff73;--shadow:0 1px 2px #0006, 0 10px 28px -14px #0009}}#root{min-height:100svh}body{background:var(--bg);margin:0}h1,h2{color:var(--text-h);letter-spacing:-.02em;font-weight:700}h2{margin:0 0 4px;font-size:18px;line-height:130%}p{margin:0}.attendance{padding:max(16px, env(safe-area-inset-top)) 16px max(48px, env(safe-area-inset-bottom));box-sizing:border-box;flex-direction:column;gap:14px;width:100%;max-width:520px;margin:0 auto;display:flex}.appbar{align-items:baseline;gap:8px;padding:4px 2px;display:flex}.logo{letter-spacing:-.03em;color:var(--text-h);font-size:18px;font-weight:800}.appbar-sub{font-size:13px}.hero{color:#fff;box-shadow:var(--shadow);background:linear-gradient(155deg,#0f1a2b 0%,#1b2f5c 100%);border-radius:24px;padding:20px 22px 22px;transition:background .4s;position:relative;overflow:hidden}.hero:after{content:"";pointer-events:none;background:radial-gradient(circle,#ffffff24,#0000 70%);width:200px;height:200px;position:absolute;top:-60px;right:-50px}.hero.working{background:linear-gradient(155deg,#0f2a3a 0%,#14507a 100%)}.hero-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.hero-actions{align-items:center;gap:6px;display:flex}.hero-note{color:#ffffffd9;flex-basis:100%;margin:0;font-size:12px}.hero-chrome{color:#fff;font-weight:600;text-decoration:underline}.hello{font-weight:600}.hero-link{font:inherit;color:#fffc;cursor:pointer;background:#ffffff1f;border:0;border-radius:999px;padding:4px 10px;font-size:13px}.hero-link:hover{background:#fff3}.hero-date{color:#ffffffb8;margin-top:18px;font-size:14px}.hero-clock{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:60px;font-weight:700;line-height:110%}.hero-clock .sec{color:#fff9;font-size:28px;font-weight:500}.pill{background:#ffffff24;border-radius:999px;align-items:center;gap:8px;margin-top:14px;padding:7px 14px;font-size:14px;display:inline-flex}.pill .dot{background:#ffffff8c;border-radius:50%;width:8px;height:8px}.pill.working .dot{background:#4ade80;animation:2s infinite pulse;box-shadow:0 0 #4ade8099}@keyframes pulse{70%{box-shadow:0 0 0 8px #4ade8000}to{box-shadow:0 0 #4ade8000}}@media (prefers-reduced-motion:reduce){.pill.working .dot{animation:none}.hero{transition:none}}.chip{color:var(--text-h);background:var(--surface);border:1px solid var(--border);border-radius:14px;align-items:center;gap:10px;padding:11px 14px;font-size:14px;display:flex}.chip .dot{background:var(--text);border-radius:50%;flex:none;width:9px;height:9px}.chip.ok .dot{background:var(--ok)}.chip.warn .dot{background:var(--warn)}.card{text-align:left;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:18px;flex-direction:column;gap:12px;padding:20px;display:flex}.card label{color:var(--text-h);font-size:14px}.card input{font:inherit;color:var(--text-h);background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:12px 14px}.card input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.actions{grid-template-columns:1fr 1fr;gap:12px;display:grid}.actions button{min-height:108px;font:inherit;color:#fff;cursor:pointer;box-shadow:var(--shadow);border:0;border-radius:22px;flex-direction:column;justify-content:center;align-items:center;gap:8px;font-size:20px;font-weight:700;transition:transform .12s,opacity .2s,filter .2s;display:flex}.actions button:active:not(:disabled){transform:scale(.97)}.actions button:focus-visible,.primary:focus-visible,.hero-link:focus-visible,.room:focus-visible{outline:3px solid var(--accent-border);outline-offset:2px}.actions .in{background:var(--brand)}.actions .out{background:var(--out)}.actions button:disabled{opacity:.38;filter:grayscale(.6);cursor:not-allowed;box-shadow:none}.records{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.records li{border-top:1px solid var(--border);grid-template-columns:76px 1fr auto;align-items:center;gap:8px;padding:12px 0;display:grid}.records li:first-child{border-top:0}.rec-date{color:var(--text-h);white-space:nowrap;font-weight:600}.rec-times{font-variant-numeric:tabular-nums}.rec-total{color:var(--text-h);background:var(--code-bg);border-radius:999px;padding:3px 10px;font-size:13px;font-weight:600}.rec-total.working{color:var(--accent);background:var(--accent-bg)}.card h2{margin:0}.card .primary{font:inherit;cursor:pointer;color:#fff;background:var(--brand);border:0;border-radius:14px;padding:14px 0;font-weight:700}.card .primary:disabled{opacity:.5;cursor:wait}.link{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:0;padding:4px 0;font-size:14px;text-decoration:underline}.tabs{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.tabs button{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:12px;padding:10px 0;font-size:14px;font-weight:600}.tabs button.active{color:var(--accent);border-color:var(--accent-border);background:var(--accent-bg)}.card select{font:inherit;color:var(--text-h);border:1px solid var(--border);background:0 0;border-radius:8px;padding:10px 12px}.hint{font-size:14px}.export-button{width:100%;font:inherit;color:var(--accent);background:var(--accent-bg);border:1px solid var(--accent-border);cursor:pointer;border-radius:12px;margin-top:12px;padding:11px 0;font-size:15px;font-weight:600;display:block}.export-button:disabled{opacity:.6;cursor:default}td small{word-break:break-all;font-size:12px;display:block}tr.inactive td{opacity:.5}.link:disabled{opacity:.4;cursor:not-allowed;text-decoration:none}.message{background:var(--code-bg);border-radius:8px;padding:10px 12px;font-size:14px}.mainnav{grid-template-columns:1fr 1fr;gap:8px;display:grid}.mainnav a{color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:14px;justify-content:center;align-items:center;gap:6px;padding:11px 0;font-weight:600;text-decoration:none;display:flex}.mainnav a.active{color:var(--accent);border-color:var(--accent-border);background:var(--accent-bg)}.badge{text-align:center;color:#fff;box-sizing:border-box;background:#dc2626;border-radius:999px;min-width:20px;padding:1px 6px;font-size:12px;line-height:18px}.room-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.room{width:100%;font:inherit;color:var(--text-h);text-align:left;border:1px solid var(--border);cursor:pointer;box-sizing:border-box;background:0 0;border-radius:10px;justify-content:space-between;align-items:center;padding:14px;text-decoration:none;display:flex}.room:disabled{opacity:.5;cursor:wait}.chat-head{align-items:center;gap:12px;display:flex}.chat-head h2{margin:0}.chat-body{flex-direction:column;gap:8px;min-height:240px;max-height:55svh;padding:4px 2px;display:flex;overflow-y:auto}.day-divider{text-align:center;margin:8px 0 4px;font-size:12px}.bubble-row{display:flex}.bubble-row.mine{justify-content:flex-end}.bubble-wrap{flex-direction:column;gap:2px;max-width:80%;display:flex}.bubble-row.mine .bubble-wrap{align-items:flex-end}.sender{font-size:12px}.bubble{color:var(--text-h);white-space:pre-wrap;word-break:break-word;background:var(--code-bg);border-radius:12px;margin:0;padding:8px 12px}.bubble-row.mine .bubble{color:#fff;background:var(--brand)}.bubble.deleted{color:var(--text);border:1px dashed var(--border);background:0 0;font-style:italic}.bubble-row.mine .bubble.deleted{color:var(--text);background:0 0}.bubble.pending{opacity:.6}.meta{align-items:center;gap:6px;font-size:11px;display:flex}.receipt{color:var(--accent)}.failed{color:#dc2626}.link.tiny{padding:0;font-size:11px}.composer{grid-template-columns:auto 1fr auto;align-items:end;gap:8px;display:grid}.composer .attach{color:var(--text-h);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:8px;padding:10px 12px;font-size:18px;line-height:1}.composer textarea{font:inherit;color:var(--text-h);border:1px solid var(--border);resize:none;box-sizing:border-box;background:0 0;border-radius:8px;min-width:0;padding:10px 12px}.composer .primary{padding:12px 18px}.message.ok{color:#15803d;background:#15803d1a}.row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.row>div{flex-direction:column;gap:8px;min-width:0;display:flex}.row input{box-sizing:border-box;width:100%;min-width:0}.card .secondary{font:inherit;color:var(--text-h);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:8px;padding:10px 8px;font-size:15px}.card .secondary:disabled{opacity:.4;cursor:not-allowed}.map-link{color:var(--accent);font-size:14px}.message.error{color:#dc2626;background:#dc26261a}.empty{font-size:15px}table{border-collapse:collapse;width:100%;font-size:15px}th,td{text-align:center;border-bottom:1px solid var(--border);padding:8px 4px}th{color:var(--text-h);font-weight:500}.pending-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.pending-list li{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.pending-who{min-width:0;display:grid}.pending-who small{color:var(--text);overflow-wrap:anywhere}.pending-actions{flex:none;align-items:center;gap:8px;display:flex}.pending-actions .primary{width:auto;padding:8px 14px}.tabs .badge{margin-left:6px}.chat.drag-over{outline:2px dashed var(--brand);outline-offset:-4px}.staged{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.staged-item{border:1px solid var(--border);border-radius:8px;align-items:center;gap:10px;padding:6px 8px;display:flex}.staged-item img{object-fit:cover;border-radius:6px;flex:none;width:36px;height:36px}.staged-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-h);flex-direction:column;flex:1;font-size:13px;display:flex;overflow:hidden}.staged-name small{color:var(--text)}.bubble.media{cursor:pointer;background:var(--code-bg);border:0;padding:0;display:block;overflow:hidden}.bubble.media img{object-fit:cover;max-width:min(240px,100%);max-height:260px;display:block}.bubble.media.placeholder{cursor:default;color:var(--text);padding:24px 28px;font-size:12px}.file-card{max-width:100%;color:var(--text-h);background:var(--code-bg);border:1px solid var(--border);border-radius:12px;align-items:center;gap:10px;padding:10px 12px;text-decoration:none;display:flex}.file-card.pending{opacity:.6}.file-icon{flex:none;font-size:22px}.file-info{flex-direction:column;min-width:0;display:flex}.file-name{text-overflow:ellipsis;white-space:nowrap;max-width:200px;font-size:14px;overflow:hidden}.file-size{color:var(--text);font-size:11px}.lightbox{z-index:50;background:#000000d9;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lightbox img{object-fit:contain;max-width:96vw;max-height:92vh}.lightbox-close{top:calc(12px + env(safe-area-inset-top));color:#fff;cursor:pointer;background:#ffffff26;border:0;border-radius:50%;width:40px;height:40px;font-size:18px;position:absolute;right:12px}.group-panel,.group-create,.notice-box{border:1px solid var(--border);border-radius:12px;gap:8px;padding:12px;display:grid}.group-panel h3,.group-create h3{margin:4px 0 0;font-size:14px}.member-list,.pick-list{gap:4px;margin:0;padding:0;list-style:none;display:grid}.member-list li{justify-content:space-between;align-items:center;gap:8px;display:flex}.member-list small,.pick-list small,.room-name .not-member{color:var(--text);margin-left:6px}.pick-list label{align-items:center;gap:8px;padding:4px 0;display:flex}.pick-list input[type=checkbox]{width:auto}.rename-row{grid-template-columns:1fr auto;gap:8px;display:grid}.link.danger{color:#dc2626;justify-self:start}.notice-box p{color:var(--text);margin:0}.chat-head .leave{color:var(--text);margin-left:auto}
