:root{--bg:#f4f5f7;--surface:#fff;--line:#e6e8ec;--line2:#cfd2d9;--txt:#1c1f26;--txt2:#5b606b;--txt3:#9096a1;--brand:#1f5fa5;--brand-bg:#e7f0fb;--g-bg:#d7eccb;--g-fg:#1f4d12;--t-bg:#cdeee0;--t-fg:#0c4a3a;--b-bg:#cfe2f7;--b-fg:#0c447c;--a-bg:#fbe1b0;--a-fg:#5a3604;--r-bg:#f6d2d2;--r-fg:#7a1f1f;--n-bg:#e4e5e1;--n-fg:#4a4a46}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body,html{margin:0;background:var(--bg);color:var(--txt);font-family:-apple-system,BlinkMacSystemFont,Hiragino Kaku Gothic ProN,Yu Gothic,Meiryo,sans-serif;font-size:16px;line-height:1.5;-webkit-text-size-adjust:100%}.splash{min-height:100vh;display:flex;align-items:center;justify-content:center;color:var(--txt2);padding:24px;text-align:center}.dot{width:9px;height:9px;border-radius:50%;background:#ffd54a}.dot.live{background:#54e09a}.g{background:var(--g-bg);color:var(--g-fg)}.t{background:var(--t-bg);color:var(--t-fg)}.b{background:var(--b-bg);color:var(--b-fg)}.a{background:var(--a-bg);color:var(--a-fg)}.r{background:var(--r-bg);color:var(--r-fg)}.n{background:var(--n-bg);color:var(--n-fg)}.seg{display:inline-flex;border:1px solid var(--line2);border-radius:10px;overflow:hidden}.seg button{border:none;background:transparent;padding:8px 14px;font:inherit;font-size:14px;font-weight:700;color:var(--txt2);cursor:pointer}.seg button.on{background:var(--brand-bg);color:var(--brand)}.legend{display:flex;flex-wrap:wrap;gap:7px;font-size:12px}.lg{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:8px}.lg b{font-weight:700;font-size:13px}.sym{min-width:30px;padding:5px 0;border-radius:8px;font-size:15px}.chip,.sym{display:inline-block;text-align:center;font-weight:700}.chip{width:16px;height:18px;line-height:18px;border-radius:3px;font-size:11px}.empty{color:var(--txt3);font-weight:400}.toast{position:fixed;left:50%;bottom:88px;transform:translateX(-50%);background:#1c1f26;color:#fff;padding:12px 22px;border-radius:26px;font-size:15px;opacity:0;transition:opacity .25s;pointer-events:none;z-index:40;text-align:center}.toast.show{opacity:1}.navbtn{font:inherit;font-size:13px;font-weight:700;padding:7px 12px;border:none;border-radius:9px;background:hsla(0,0%,100%,.16);color:#fff;text-decoration:none;cursor:pointer;display:inline-flex;align-items:center}.navbtn:hover{background:hsla(0,0%,100%,.3)}.mini{font:inherit;font-size:13px;padding:8px 12px;border:1px solid var(--line2);border-radius:9px;background:var(--surface);color:var(--txt2);cursor:pointer}.mini:disabled{opacity:.4;cursor:default}.mini.danger{color:#a3261f;border-color:#e7b3ad}.btn{font:inherit;font-size:14px;font-weight:700;padding:9px 16px;border:none;border-radius:10px;background:var(--brand);color:#fff;cursor:pointer}.btn.sub{color:var(--txt2);border:1px solid var(--line2)}.btn.danger,.btn.sub{background:transparent;font-weight:400}.btn.danger{color:#a3261f;border:1px solid #e7b3ad;padding:7px 12px}.p-input .wrap{max-width:520px;margin:0 auto;padding-bottom:84px}.p-input header{position:-webkit-sticky;position:sticky;top:0;z-index:20;background:var(--brand);color:#fff;padding:12px 16px}.p-input header .t{font-size:17px;font-weight:700;display:flex;align-items:center;gap:8px}.p-input header .meta{display:flex;gap:8px;margin-top:8px}.p-input header input,.p-input header select{flex:1 1;font:inherit;font-size:15px;padding:9px 10px;border:none;border-radius:10px;background:hsla(0,0%,100%,.16);color:#fff}.p-input header select:disabled{opacity:.85}.p-input header select option{color:#000}.p-input header input::-webkit-calendar-picker-indicator{filter:invert(1)}.p-input .ctl{display:flex;align-items:center;gap:10px;padding:10px 16px;background:var(--surface);border-bottom:1px solid var(--line)}.p-input .ctl .lbl{font-size:13px;color:var(--txt2)}.p-input .legend{padding:10px 16px;background:var(--surface);border-bottom:1px solid var(--line)}.p-input .note{padding:10px 16px 0;color:var(--txt2);font-size:13px}.p-input .grp{padding:14px 16px 4px;font-size:13px;font-weight:700;color:var(--brand)}.p-input .grp small{color:var(--txt3);font-weight:400;margin-left:6px}.p-input .item{background:var(--surface);margin:0 10px 8px;border:1px solid var(--line);border-radius:14px;padding:10px 12px}.p-input .item .nm{font-size:15px;font-weight:600;margin-bottom:8px}.p-input .item .sub{font-size:11px;color:var(--txt3);font-weight:400;margin-right:6px}.p-input .opts{display:grid;grid-template-columns:repeat(6,1fr);grid-gap:6px;gap:6px}.p-input .opts button{height:46px;border:1.5px solid var(--line2);border-radius:11px;background:var(--surface);font:inherit;font-size:20px;font-weight:700;color:var(--txt3);transition:transform .05s;cursor:pointer}.p-input .opts button:active{transform:scale(.94)}.p-input .opts button.sel.g{background:var(--g-bg);color:var(--g-fg);border-color:var(--g-fg)}.p-input .opts button.sel.t{background:var(--t-bg);color:var(--t-fg);border-color:var(--t-fg)}.p-input .opts button.sel.b{background:var(--b-bg);color:var(--b-fg);border-color:var(--b-fg)}.p-input .opts button.sel.a{background:var(--a-bg);color:var(--a-fg);border-color:var(--a-fg)}.p-input .opts button.sel.r{background:var(--r-bg);color:var(--r-fg);border-color:var(--r-fg)}.p-input .opts button.sel.n{background:var(--n-bg);color:var(--n-fg);border-color:var(--n-fg)}.p-input footer{position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--surface);border-top:1px solid var(--line);padding:10px 16px calc(10px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:12px;max-width:520px;margin:0 auto}.p-input footer .prog{font-size:13px;color:var(--txt2);white-space:nowrap}.p-input footer a.board{font-size:12px;color:var(--brand);text-decoration:none;white-space:nowrap}.p-input footer button.send{flex:1 1;height:50px;border:none;border-radius:13px;background:var(--brand);color:#fff;font:inherit;font-size:17px;font-weight:700;cursor:pointer}.p-input footer button.send:active{filter:brightness(.94)}.p-board .top{position:-webkit-sticky;position:sticky;top:0;z-index:10;background:var(--brand);color:#fff;padding:12px 20px;gap:14px;flex-wrap:wrap}.p-board .top,.p-board .top .t{display:flex;align-items:center}.p-board .top .t{font-size:18px;font-weight:700;gap:8px}.p-board .top .sub{font-size:13px;opacity:.9}.p-board .top .spacer{flex:1 1}.p-board .top input{font:inherit;font-size:14px;padding:7px 10px;border:none;border-radius:9px;background:hsla(0,0%,100%,.16);color:#fff}.p-board .top input::-webkit-calendar-picker-indicator{filter:invert(1)}.p-board .bar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;padding:12px 20px;background:var(--surface);border-bottom:1px solid var(--line)}.p-board select{font:inherit;font-size:14px;padding:7px 11px;border:1px solid var(--line2);border-radius:9px;background:var(--surface);color:var(--txt)}.p-board .chk{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--txt2);cursor:pointer}.p-board .row2{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.p-board .legend{padding:10px 20px 0}.p-board .instatus{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px 20px 0;font-size:12px}.p-board .instatus .lbl{color:var(--txt2);font-weight:700}.p-board .instatus .pill{padding:2px 9px;border-radius:8px;border:1px solid var(--line2)}.p-board .instatus .pill.ok{background:#eef7f0;color:#1f5d33;border-color:#bfe3c8}.p-board .instatus .pill.ng{background:#fff3e0;color:#8a4b00;border-color:#f0c98a;font-weight:700}.p-board .skey{padding:8px 20px 0;font-size:12px;color:var(--txt2);display:flex;align-items:center;gap:8px}.p-board .skey .bx{padding:1px 7px;border:1px solid var(--line2);border-radius:4px;background:var(--surface);color:var(--txt2)}.p-board .wrap{padding:14px 20px 40px;overflow-x:auto}.p-board table{border-collapse:collapse;font-size:14px;background:var(--surface);border-radius:12px;overflow:hidden}.p-board table.full{width:100%}.p-board thead th{font-weight:600;color:var(--txt2);padding:9px 8px;border-bottom:2px solid var(--line2);text-align:center;background:var(--surface)}.p-board thead th.name{text-align:left}.p-board td{padding:6px 8px;border-bottom:1px solid var(--line);text-align:center;vertical-align:top}.p-board td.name{text-align:left}.p-board tr.grp td{background:#eef0f3;color:var(--txt2);font-weight:700;font-size:13px;text-align:left;padding:8px 12px}.p-board .clscode{color:var(--txt3);font-size:11px}.p-board .mktag{font-size:11px;color:var(--txt2);border:1px solid var(--line2);border-radius:7px;padding:1px 7px;margin-left:6px}.p-board tr.hi{background:var(--brand-bg)}.p-board td.emph{box-shadow:inset 0 0 0 2px var(--brand);border-radius:8px}.p-board .dim{opacity:.32}.p-board .axhead{position:-webkit-sticky;position:sticky;left:0;background:var(--surface)}.p-board .cellrow{display:flex;flex-direction:column;align-items:flex-start;gap:2px;margin:3px 0}.p-board .cellrow .mn{font-size:10px;color:var(--txt3);line-height:1.2}.p-board .chips{display:grid;grid-template-columns:repeat(4,16px);grid-gap:3px;gap:3px}.p-board .foot{font-size:12px;color:var(--txt3);padding:10px 0 0}.p-board .modal{display:flex;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:100;align-items:center;justify-content:center}.p-board .modalbox{background:var(--surface);color:var(--txt);border-radius:16px;padding:22px;text-align:center;max-width:320px}.p-board .modalbox .mt{font-weight:700;margin-bottom:12px}.p-board .modalbox .mbtn{font:inherit;font-size:14px;font-weight:700;padding:9px 18px;border:none;border-radius:10px;background:var(--brand);color:#fff;cursor:pointer;margin-top:14px}.p-board .modalbox .qrurl{font-size:12px;color:var(--txt2);margin-top:10px;word-break:break-all}.p-admin .top{position:-webkit-sticky;position:sticky;top:0;z-index:10;background:var(--brand);color:#fff;padding:12px 20px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}.p-admin .top .t{font-size:18px;font-weight:700}.p-admin .top .spacer{flex:1 1}.p-admin .top a,.p-admin .top button.link{color:#fff;font-size:13px;text-decoration:none;opacity:.9;background:none;border:none;cursor:pointer;font:inherit}.p-admin .wrap{max-width:880px;margin:0 auto;padding:18px 20px 60px}.p-admin .add{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:18px;display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}.p-admin .add .f{display:flex;flex-direction:column;gap:4px}.p-admin .add label{font-size:12px;color:var(--txt2)}.p-admin input[type=text],.p-admin select{font:inherit;font-size:14px;padding:8px 10px;border:1px solid var(--line2);border-radius:9px;background:var(--surface);color:var(--txt)}.p-admin table{width:100%;border-collapse:collapse;background:var(--surface);border-radius:12px;overflow:hidden;font-size:14px}.p-admin th{text-align:left;font-weight:600;color:var(--txt2);padding:9px 10px;border-bottom:2px solid var(--line2);font-size:13px}.p-admin td{padding:7px 10px;border-bottom:1px solid var(--line)}.p-admin tr.grp td{background:#eef0f3;font-weight:700;color:var(--txt2);font-size:13px}.p-admin td input[type=text],.p-admin td select{width:100%}.p-admin .cnt,.p-admin .muted{color:var(--txt2);font-size:13px}.p-admin .cnt{margin:10px 2px}.p-admin .inactive{opacity:.5}.p-admin .chk{display:inline-flex;align-items:center;gap:5px}.p-login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg)}.p-login .card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:28px 24px;width:100%;max-width:360px;box-shadow:0 6px 24px rgba(0,0,0,.06)}.p-login .brand{color:var(--brand);font-weight:700;font-size:18px;margin-bottom:4px}.p-login .sub{color:var(--txt2);font-size:13px;margin-bottom:20px}.p-login label{display:block;font-size:12px;color:var(--txt2);margin:12px 0 4px}.p-login input{width:100%;font:inherit;font-size:15px;padding:11px 12px;border:1px solid var(--line2);border-radius:10px;background:var(--surface);color:var(--txt)}.p-login button.primary{width:100%;margin-top:20px;height:48px;border:none;border-radius:12px;background:var(--brand);color:#fff;font:inherit;font-size:16px;font-weight:700;cursor:pointer}.p-login button.primary:disabled{opacity:.6;cursor:default}.p-login .err{color:#a3261f;font-size:13px;margin-top:12px;min-height:18px}.userchip{font-size:12px;color:#fff;opacity:.9;display:inline-flex;align-items:center;gap:8px}