:root{--bg:#0b1622;--panel:#14263a;--panel-2:#1c344f;--line:#3a5673;--text:#f4f7fa;--muted:#b5c4d3;--accent:#ffd23f;--accent-text:#1a1400;--danger:#ff7b6b;--ok:#6fe3a1;--touch:56px;font-size:18px}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%;overscroll-behavior-y:contain;margin:0;font-family:system-ui,-apple-system,Apple SD Gothic Neo,Malgun Gothic,Noto Sans KR,sans-serif;line-height:1.5}h1{margin:0 0 .75rem;font-size:1.35rem}h2{margin:1.25rem 0 .5rem;font-size:1.15rem}p{margin:.4rem 0}a{color:var(--accent)}.page{max-width:640px;padding:12px 14px calc(24px + env(safe-area-inset-bottom));margin:0 auto}.center{flex-direction:column;justify-content:center;min-height:100%;display:flex}.muted{color:var(--muted);font-size:.9rem}.small{font-size:.85rem}.mono{word-break:break-all;font-family:ui-monospace,Menlo,Consolas,monospace}.topbar{z-index:5;border-bottom:2px solid var(--line);padding:calc(8px + env(safe-area-inset-top)) 14px 8px;background:#07101a;position:sticky;top:0}.topbar-row{align-items:center;gap:8px;max-width:640px;margin:0 auto;display:flex}.topbar .who{flex:1;min-width:0}.topbar .who strong{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.project-banner{background:var(--panel-2);border-left:6px solid var(--accent);border-radius:6px;max-width:640px;margin:6px auto 0;padding:8px 10px}.project-banner .code{color:var(--accent);font-weight:700}button,.btn{min-height:var(--touch);min-width:var(--touch);border:2px solid var(--line);background:var(--panel-2);color:var(--text);font:inherit;cursor:pointer;touch-action:manipulation;border-radius:10px;justify-content:center;align-items:center;padding:0 18px;font-weight:700;text-decoration:none;display:inline-flex}button.primary,.btn.primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}button.danger{border-color:var(--danger);color:var(--danger)}button.block,.btn.block{width:100%;margin-top:12px;display:flex}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline-offset:2px;outline:3px solid #fff}.icon-btn{padding:0 12px;font-size:.9rem}.row{flex-wrap:wrap;gap:10px;display:flex}.row>*{flex:1}label{margin:14px 0 4px;font-weight:700;display:block}input[type=text],input[type=password],input[type=number],input[type=date],select,textarea{width:100%;min-height:var(--touch);border:2px solid var(--line);color:var(--text);font:inherit;background:#06101a;border-radius:10px;padding:10px 12px}.check{min-height:var(--touch);align-items:center;gap:12px;margin:4px 0;font-weight:400;display:flex}.check input{width:28px;height:28px;accent-color:var(--accent)}.card{background:var(--panel);border:2px solid var(--line);border-radius:12px;margin:10px 0;padding:14px}.menu{gap:10px;margin:10px 0;display:grid}.menu a,.menu .disabled{border:2px solid var(--line);background:var(--panel);min-height:68px;color:var(--text);border-radius:12px;justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;font-size:1.05rem;font-weight:700;text-decoration:none;display:flex}.menu a{border-color:var(--accent)}.menu .disabled{opacity:.6;border-style:dashed}.tag{border:2px solid var(--line);white-space:nowrap;border-radius:999px;padding:2px 10px;font-size:.8rem;font-weight:700;display:inline-block}.tag.accent{border-color:var(--accent);color:var(--accent)}.tag.ok{border-color:var(--ok);color:var(--ok)}.tag.danger{border-color:var(--danger);color:var(--danger)}.error,.notice,.warn{border-radius:10px;margin:12px 0;padding:12px 14px;font-weight:700}.error{border:2px solid var(--danger);color:#ffd9d3;background:#3a1410}.notice{border:2px solid var(--ok);background:#10301f}.warn{border:2px solid var(--accent);background:#3a2f05}.secret{letter-spacing:.05em;-webkit-user-select:all;user-select:all;background:#000;border-radius:8px;padding:10px;font-size:1.3rem}.tabs{gap:6px;padding:6px 0;display:flex;overflow-x:auto}.tabs a{border:2px solid var(--line);min-height:48px;color:var(--text);border-radius:999px;flex:none;align-items:center;padding:0 14px;font-weight:700;text-decoration:none;display:inline-flex}.tabs a.active{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.list{margin:0;padding:0;list-style:none}.list li{border-bottom:1px solid var(--line);padding:12px 0}.list li:last-child{border-bottom:0}.kv{grid-template-columns:auto 1fr;gap:2px 12px;font-size:.92rem;display:grid}.kv dt{color:var(--muted)}.kv dd{word-break:break-all;margin:0}.pin-dots{justify-content:center;gap:14px;margin:18px 0;display:flex}.pin-dots span{border:3px solid var(--text);border-radius:50%;width:20px;height:20px}.pin-dots span.on{background:var(--accent);border-color:var(--accent)}.keypad{grid-template-columns:repeat(3,1fr);gap:12px;max-width:360px;margin:0 auto;display:grid}.keypad button{min-height:76px;font-size:1.7rem}.qr{background:#fff;border-radius:8px;width:220px;height:220px;margin:12px auto;padding:8px;display:block}.outbox-bar{border:2px solid var(--accent);background:#3a2f05;border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;max-width:640px;margin:6px auto 0;padding:8px 10px;font-weight:700;display:flex}.status{border:2px solid var(--line);border-radius:999px;padding:2px 10px;font-size:.8rem;font-weight:700;display:inline-block}.status.DRAFT{border-color:var(--muted)}.status.REQUESTED{border-color:var(--accent);color:var(--accent)}.status.APPROVED,.status.CLEARED,.status.VERIFIED{border-color:var(--ok);color:var(--ok)}.status.IN_PROGRESS{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.status.ABORTED,.status.DENIED,.status.EXCLUDED{border-color:var(--danger);color:var(--danger)}.status.CANCELLED,.status.NO_SHOW{opacity:.7}.next-step{background:var(--panel-2);border-left:6px solid var(--accent);border-radius:10px;margin:10px 0;padding:12px 14px;font-size:1.1rem;font-weight:700}.ar-card{color:var(--text);text-decoration:none;display:block}.ar-card .title{font-size:1.05rem;font-weight:700}.choice{grid-template-columns:1fr 1fr;gap:8px;margin:6px 0 12px;display:grid}.choice button[aria-pressed=true]{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.choice button.no[aria-pressed=true]{background:var(--danger);color:#1a0500;border-color:var(--danger)}.choice.four{grid-template-columns:1fr 1fr}.script{background:#000;border-radius:10px;margin:8px 0;padding:14px;font-size:1.25rem;line-height:1.6}.script:before{content:"“";color:var(--accent)}.script:after{content:"”";color:var(--accent)}.steps{gap:6px;margin:8px 0;display:flex;overflow-x:auto}.steps button{flex:none;min-width:56px}.steps button.done{border-color:var(--ok);color:var(--ok)}.steps button.current{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.person{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding:8px 0;display:flex}.person .who{flex:160px;min-width:0}.person .acts{flex-wrap:wrap;gap:6px;display:flex}.sigpad canvas{border:2px solid var(--line);background:#fff;border-radius:10px;display:block}.sigpad-head{justify-content:space-between;align-items:center;margin:8px 0;display:flex}.counts{text-align:center;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0;display:grid}.counts div{background:var(--panel-2);border-radius:10px;padding:8px 4px}.counts strong{font-size:1.6rem;display:block}.thumbs{flex-wrap:wrap;gap:8px;display:flex}.thumbs img{object-fit:cover;border:2px solid var(--line);border-radius:6px;width:96px;height:72px}textarea{min-height:120px}input[type=datetime-local],input[type=time],input[type=tel]{width:100%;min-height:var(--touch);border:2px solid var(--line);color:var(--text);font:inherit;background:#06101a;border-radius:10px;padding:10px 12px}.choice.three{grid-template-columns:1fr 1fr 1fr}.choice.three button{padding:0 6px}.choice.three button[data-testid=judge-NA][aria-pressed=true]{background:var(--muted);color:#0b1622;border-color:var(--muted)}.cl-row[data-result=NG]{border-color:var(--danger)}.hc-grid{grid-template-columns:1fr 1fr;gap:6px 12px;display:grid}.hc-grid .hc{margin:6px 0 0;font-weight:400}.hc-grid input{min-height:48px}.signmode{z-index:50;background:var(--bg);border:6px solid var(--accent);position:fixed;inset:0;overflow-y:auto}.date-group{margin-top:14px}.date-group>h2{align-items:center;gap:8px;display:flex}.shift-badge{border:3px solid var(--line);border-radius:999px;padding:4px 14px;font-size:1rem;font-weight:700}.shift-badge.NIGHT{border-color:var(--accent);color:var(--accent);background:#20304a}.shift-badge.DAY{color:#0b1622;background:#f4f7fa;border-color:#f4f7fa}input[type=file]{width:100%;min-height:var(--touch);color:var(--text);padding:10px 0}
