:root{--orange: #f59a19;--orange-dark: #d9840c;--ink: #252724;--muted: #82847e;--line: #e9eae5;--paper: #fafbf8;--danger: #c4453c}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Noto Sans KR,-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Malgun Gothic,sans-serif;-webkit-font-smoothing:antialiased}button,input{font:inherit}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px 16px}.login-card{width:100%;max-width:380px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:40px 32px 32px;display:flex;flex-direction:column}.logo{margin:0;text-align:center;font-size:30px;font-weight:800;letter-spacing:-1.3px;color:var(--orange)}.subtitle{margin:6px 0 28px;text-align:center;font-size:14px;color:var(--muted)}label{font-size:13px;font-weight:600;margin:0 0 6px}input{height:46px;padding:0 14px;border:1px solid var(--line);border-radius:10px;background:#fff;margin-bottom:16px;outline:none}input:focus{border-color:var(--orange);box-shadow:0 0 0 3px #f59a192e}.error{min-height:20px;margin:-4px 0 12px;font-size:13px;color:var(--danger)}button[type=submit]{height:48px;border:0;border-radius:10px;background:var(--orange);color:#fff;font-weight:700;cursor:pointer}button[type=submit]:hover:not(:disabled){background:var(--orange-dark)}button[type=submit]:disabled{opacity:.6;cursor:default}button:focus-visible{outline:2px solid var(--orange);outline-offset:3px}.help{margin:20px 0 0;text-align:center;font-size:12px;line-height:1.6;color:var(--muted)}.welcome{text-align:center;line-height:1.7;margin:24px 0 0}.shell{min-height:100vh;display:flex;flex-direction:column}.topbar{height:60px;padding:0 24px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:16px;position:sticky;top:0;z-index:2}.logo.small{font-size:22px;font-weight:800;letter-spacing:-1px;color:var(--orange);text-decoration:none}.who{margin-left:auto;font-size:14px;color:var(--muted)}.ghost{height:34px;padding:0 14px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);cursor:pointer;font-size:13px;white-space:nowrap}.ghost:hover:not(:disabled){border-color:var(--orange)}.ghost:disabled{opacity:.5;cursor:default}.ghost.more{margin-top:12px}.body{flex:1;display:flex}.side{width:248px;flex-shrink:0;padding:18px 14px;background:#fff;border-right:1px solid var(--line);position:sticky;top:60px;height:calc(100vh - 60px);overflow-y:auto}.nav-list,.nav-sub{list-style:none;margin:0;padding:0}.nav-list{display:flex;flex-direction:column;gap:4px}.nav-top{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;border:0;border-radius:10px;background:transparent;font-family:inherit;font-size:14.5px;font-weight:600;line-height:20px;letter-spacing:-.2px;color:#3f423c;text-align:left;text-decoration:none;cursor:pointer;transition:background-color .15s ease,color .15s ease}.nav-icon{display:inline-flex;color:#9a9d95;transition:color .15s ease}.nav-top:hover{background:#f59a1914;color:var(--ink)}.nav-top:hover .nav-icon{color:var(--orange)}.nav-top.active{background:#f59a1924;color:#a85f00}.nav-top.active .nav-icon,.nav-group.has-active .nav-icon{color:var(--orange)}.nav-chevron{margin-left:auto;display:inline-flex;color:#b3b5ae;transition:transform .2s ease;transform:rotate(-90deg)}.nav-group.open .nav-chevron{transform:rotate(0)}.nav-sub{margin:2px 0 6px 21px;padding-left:12px;border-left:1.5px solid var(--line);display:flex;flex-direction:column;gap:2px}.nav-item{position:relative;display:block;padding:8px 12px;border-radius:8px;font-size:13.5px;font-weight:500;color:#6b6e66;text-decoration:none;transition:background-color .15s ease,color .15s ease}.nav-item:hover{background:#f59a1914;color:var(--ink)}.nav-item.active{background:#f59a1924;color:#a85f00;font-weight:600}.nav-item.active:before{content:"";position:absolute;left:-13.5px;top:8px;bottom:8px;width:2.5px;border-radius:2px;background:var(--orange)}.nav-top:focus-visible,.nav-item:focus-visible{outline:2px solid var(--orange);outline-offset:1px}.content{flex:1;min-width:0;padding:28px 32px 48px}.content.narrow{max-width:560px;margin:0 auto;width:100%}.content h1{margin:0 0 6px;font-size:22px}.content h2{margin:32px 0 10px;font-size:16px}.muted{color:var(--muted);margin:0 0 16px;font-size:14px;line-height:1.6}.small{font-size:12px}.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px}.form{display:flex;flex-direction:column;max-width:440px}.form .error{margin:-4px 0 10px}select{height:46px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:#fff;margin-bottom:16px;font:inherit;color:var(--ink)}select:focus{border-color:var(--orange);outline:none;box-shadow:0 0 0 3px #f59a192e}.ok-text{color:#3d7a3a;font-size:13px;margin:12px 0 0}.check{display:inline-flex;align-items:center;gap:6px;font-weight:500;margin:0 0 12px;cursor:pointer}.check input{height:auto;margin:0}.notice{border-radius:12px;padding:14px 16px;margin:16px 0;font-size:14px;line-height:1.7;max-width:640px}.notice.ok{background:#eef6ec;border:1px solid #cfe5ca}.notice.warn{background:#fff6e8;border:1px solid #f6d9a8}.notice.err{background:#fbeceb;border:1px solid #f0c9c6;color:var(--danger)}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em;background:var(--paper);padding:1px 6px;border-radius:6px;border:1px solid var(--line)}code.big{font-size:1.15em;font-weight:700;letter-spacing:.5px}.kv{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;margin:12px 0}.kv dt{color:var(--muted)}.kv dd{margin:0;word-break:break-all}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:#fff;margin-top:8px}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle}th{background:var(--paper);font-weight:600;color:#5c5f58;white-space:nowrap}tbody tr:last-child td{border-bottom:0}tr.row-warn td{background:#fffaf2}.nowrap{white-space:nowrap}@media(max-width:760px){.topbar{padding:0 16px}.body{flex-direction:column}.side{width:auto;height:auto;position:static;padding:8px 12px;border-right:0;border-bottom:1px solid var(--line);overflow-x:auto}.nav-list{flex-direction:row;align-items:center;gap:4px}.nav-list>li{display:contents}.nav-group{display:none}.nav-sub{display:flex!important;flex-direction:row;margin:0;padding:0;border:0;gap:4px}.nav-top,.nav-item{white-space:nowrap;width:auto}.nav-item.active:before{display:none}.content{padding:20px 16px 40px}.who{display:none}}.filters{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:4px}.filters select{margin-bottom:0;min-width:220px}.filters .check{margin:0}td.actions{white-space:nowrap}td.actions .ghost+.ghost{margin-left:6px}a.ghost.link{display:inline-flex;align-items:center;text-decoration:none}a.ghost.link.active{border-color:var(--orange)}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600}.badge.off{background:#eeefeb;color:#6b6e66}tr.row-off td{color:#9a9d95}.ghost.danger{color:var(--danger)}.ghost.danger:hover:not(:disabled){border-color:var(--danger);background:#fdf3f2}.page-head{display:flex;align-items:baseline;gap:10px;margin-bottom:14px}.page-head h1{margin:0}.count{color:var(--muted);font-size:14px}.page-actions{display:flex;justify-content:flex-end;margin-top:14px}button.primary,a.primary{height:42px;padding:0 18px;border:0;border-radius:10px;background:var(--orange);color:#fff;font:inherit;font-size:14px;font-weight:700;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:6px;transition:background-color .15s ease,transform .05s ease}button.primary:hover:not(:disabled){background:var(--orange-dark)}button.primary:active:not(:disabled){transform:translateY(1px)}button.primary:disabled{opacity:.6;cursor:default}.badge.ok{background:#eaf5e8;color:#3d7a3a}.badge.warn{background:#fdeee6;color:#b5521b}.badge.info,.badge.type-P{background:#fff4e0;color:#a85f00}.badge.type-K{background:#fbeef0;color:#a14d58}.badge.type-I{background:#eaf2f6;color:#3f6f84}.badge.type-C{background:#f2efe9;color:#7a6440}.badge.type-G{background:#edf4ea;color:#4f7346}tbody tr{transition:background-color .12s ease}tbody tr:hover td{background:#fcfcfa}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#25272461;display:grid;place-items:center;padding:16px;animation:fade-in .15s ease}.modal{width:100%;max-width:460px;max-height:calc(100vh - 32px);overflow-y:auto;background:#fff;border-radius:18px;box-shadow:0 24px 60px #25272438;animation:pop-in .18s ease}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:20px 22px 4px}.modal-head h2{margin:0;font-size:18px}.modal-body{padding:14px 22px 22px}.modal-body .form{max-width:none}.modal-body .form button.primary{width:100%;justify-content:center;height:46px}.modal-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin-top:16px}.icon-btn{width:34px;height:34px;border:0;border-radius:10px;background:transparent;color:var(--muted);display:inline-grid;place-items:center;cursor:pointer}.icon-btn:hover{background:var(--paper);color:var(--ink)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pop-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.modal,.modal-backdrop{animation:none}}.summary{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:-4px 0 14px;color:#5c5f58;font-size:14px}.summary strong{color:var(--ink);font-weight:700}.summary .sep{color:#c9cbc4;margin:0 4px}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-left:6px}.dot.on{background:#5aa356}.dot.off{background:#b3b5ae}.toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.tabs{display:inline-flex;flex-wrap:wrap;gap:4px;padding:4px;background:#f1f2ee;border-radius:12px}.tab{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 12px;border:0;border-radius:9px;background:transparent;color:#5c5f58;font:inherit;font-size:13.5px;font-weight:600;cursor:pointer;transition:background-color .15s ease,color .15s ease,box-shadow .15s ease}.tab:hover{color:var(--ink);background:#fff9}.tab.active{background:#fff;color:var(--ink);box-shadow:0 1px 3px #2527241f}.tab-count{min-width:20px;height:20px;padding:0 6px;border-radius:999px;display:inline-grid;place-items:center;background:#25272412;color:#6b6e66;font-size:12px;font-weight:700}.tab.active .tab-count{background:#f59a1929;color:#a85f00}.tab.alert .tab-count{background:#fdeee6;color:#b5521b}.toolbar .org-select{margin:0;height:42px;min-width:220px}@media(max-width:760px){.toolbar .org-select{width:100%}}.logo-sub{font-size:.55em;font-weight:700;color:var(--ink, #252724);letter-spacing:0;margin-left:2px}.field-title{margin:14px 0 6px;font-size:14px;font-weight:600}.org-buttons{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.org-btn{min-width:96px;height:44px;padding:0 16px;border-radius:12px;border:1px solid #e9eae5;background:#fff;font-size:15px;font-weight:600;color:#252724;cursor:pointer}.org-btn:hover{background:#f59a1914}.org-btn.selected{border-color:var(--orange);background:#f59a191f;color:var(--orange-dark)}input.pin{letter-spacing:.6em;text-align:center;font-size:20px}.seg-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}.seg-btn{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;border-radius:10px;border:1px solid #e9eae5;background:#fff;cursor:pointer;font-size:15px;font-weight:700;color:#252724;text-align:left}.seg-btn:hover{background:#f59a1914}.seg-btn.selected{border-color:var(--orange);background:#f59a191f}.seg-desc{font-size:12px;font-weight:400;color:#82847e}.store-boxes{display:flex;flex-wrap:wrap;gap:10px;margin:4px 0 16px}.store-box{display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-width:132px;padding:10px 14px;border:1px solid #e9eae5;border-radius:12px;background:#fff;cursor:pointer;text-align:left;color:#252724}.store-box:hover{background:#f59a1914}.store-box.selected{border-color:var(--orange);background:#f59a191f;box-shadow:0 0 0 1px var(--orange) inset}.store-box.off{opacity:.55}.store-box-brand{font-size:12px;color:#82847e}.store-box-name{font-size:15px;font-weight:700}.store-box-sub{font-size:12px;color:#82847e}.badge.role-A{background:#fff4e0;color:#a85f00}.badge.role-O{background:#eaf2f6;color:#3f6f84}.badge.role-S{background:#f2efe9;color:#6b6e66}.badge{white-space:nowrap}
