body{font-family:Arial,sans-serif;margin:0;padding:0;background-color:#fff}h1{text-align:center;color:#333}.app-topbar{width:80%;margin:0 auto;display:flex;align-items:center;justify-content:space-between}.top-refresh-button{margin:0;padding:8px 14px}.mailbox-button{position:relative;border:1px solid #cbd5df;background:#fff;border-radius:8px;padding:8px 14px;cursor:pointer;color:#2a3442}.mailbox-unread-dot{position:absolute;top:4px;right:4px}.mailbox-unread-dot,.sidebar-mail-unread-dot{width:8px;height:8px;border-radius:50%;background:#d92d20}.sidebar-mail-unread-dot{display:inline-block;margin-left:8px;vertical-align:middle}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.login-card{width:100%;max-width:360px;background:#fff;border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.12);padding:24px;display:flex;flex-direction:column;grid-gap:12px;gap:12px}.login-card h2{margin:0 0 8px;color:#273544}.login-input{width:100%;box-sizing:border-box;height:42px;border:1px solid #cbd5df;border-radius:8px;padding:0 12px;font-size:14px}.login-input:focus{outline:2px solid #8dbbff;border-color:#7eaef2}.login-error{background:#f8d7da;color:#721c24;border:1px solid #f5c6cb;border-radius:6px;padding:10px;font-size:13px}.login-success{background:#d4edda;color:#155724;border:1px solid #c3e6cb;border-radius:6px;padding:10px;font-size:13px}.login-button{margin:4px 0 0}.auth-link-row{display:flex;align-items:center;justify-content:flex-start;grid-gap:8px;gap:8px;margin-top:2px}.auth-help-text{font-size:12px;color:#8a94a2}.auth-link-button{background:none;border:none;color:#2f80ed;font-size:13px;cursor:pointer;padding:0;margin-left:auto}.auth-link-button:hover{text-decoration:underline}.search-bar-wrap{width:80%;margin:12px auto 16px;display:grid;grid-template-columns:1fr 1fr 1fr 2fr;align-items:start;grid-gap:12px;gap:12px}.list-logo-wrap{width:80%;margin:6px auto 10px;display:flex;justify-content:center}.list-company-logo{max-width:min(560px,100%);height:auto;object-fit:contain}.korea-map-panel{width:88%;margin:0 auto 12px;background:#fff;border:1px solid #d9e1e8;border-radius:10px;padding:12px}.korea-map-panel h3{margin:0 0 6px}.korea-map-help{margin:0 0 10px;font-size:13px;color:#667085}.korea-map-level-wrap{display:block;animation:korea-map-zoom-in .28s ease}.korea-map-level{border:1px solid #e3e8ef;border-radius:8px;padding:8px;background:#fbfdff}.korea-map-level.single{max-width:560px;margin:0 auto}.korea-map-toolbar{display:flex;grid-gap:8px;gap:8px;margin-bottom:10px;justify-content:center}.korea-map-back-button{border:1px solid #d0d7e2;border-radius:6px;background:#fff;color:#344054;font-size:12px;padding:4px 8px;cursor:pointer}@keyframes korea-map-zoom-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.korea-map-level h4{margin:0 0 8px;font-size:14px}.korea-svg-map{width:100%;height:auto;display:block}.korea-svg-frame{fill:#f8fafc;stroke:#d9e1e8}.korea-svg-terrain{fill:#eef2f7;opacity:.85;stroke:#d8e0ea;stroke-width:1.2}.kakao-map-wrap{margin-top:12px}.kakao-map-canvas{width:100%;height:460px;border:1px solid #d9e1e8;border-radius:10px;overflow:hidden;animation:map-canvas-zoom-in .32s ease}@keyframes map-canvas-zoom-in{0%{opacity:.2;transform:scale(.97)}to{opacity:1;transform:scale(1)}}.kakao-region-bubble{min-width:78px;min-height:70px;border-radius:999px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:8px 10px;box-sizing:border-box;font-size:12px;font-weight:700;color:#1f2a37;background:hsla(0,0%,100%,.92);border:2px solid #2f80ed;box-shadow:0 2px 8px rgba(0,0,0,.18);cursor:pointer;white-space:normal;-webkit-user-select:none;user-select:none;animation:korea-map-zoom-in .25s ease}.kakao-region-bubble .bubble-name{line-height:1.1}.kakao-region-bubble .bubble-count{margin-top:2px;line-height:1;font-size:13px}.kakao-region-bubble.zero-count{opacity:.52}.kakao-region-bubble.gugun{border-color:#1f9d55}.kakao-region-bubble.dong{border-color:#d97706;cursor:default}.kakao-region-label{display:flex;flex-direction:column;align-items:center;justify-content:center;grid-gap:2px;gap:2px;min-width:0;padding:0;border-radius:0;font-size:11px;font-weight:700;color:#1f2a37;background:transparent;border:none;text-align:center}.kakao-region-label.zero-count{opacity:.52}.kakao-map-error{padding:10px 12px;border:1px solid #f5c2c7;border-radius:8px;background:#fef2f2;color:#8a1c1c;font-size:13px}.korea-map-chip-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:6px;gap:6px}.korea-map-chip{border:1px solid #d0d7e2;border-radius:6px;background:#fff;padding:6px 8px;display:flex;align-items:center;justify-content:space-between;grid-gap:6px;gap:6px;cursor:pointer;font-size:12px}.korea-map-chip.active{border-color:#2f80ed;background:#eaf3ff}.korea-map-chip.static{cursor:default}.search-filters-left{display:contents}.spec-filter-group{display:flex;flex-direction:column;grid-gap:8px;gap:8px}.spec-filter-input,.spec-filter-select{width:100%;box-sizing:border-box;height:40px;padding:0 12px;border:1px solid #cbd5df;border-radius:8px;background:#fff;font-size:14px;color:#243241}.search-input:focus,.spec-filter-input:focus,.spec-filter-select:focus{outline:2px solid #8dbbff;border-color:#7eaef2}.search-main-right{width:100%}.search-input{width:100%;box-sizing:border-box;height:44px;padding:0 14px;border:1px solid #cbd5df;border-radius:8px;background:#fff;font-size:15px;color:#243241;box-shadow:0 1px 3px rgba(0,0,0,.04)}.container{width:80%;margin:auto;overflow:hidden;position:relative}.workspace-layout{width:80%;margin:0 auto;display:grid;grid-template-columns:220px 1fr;grid-gap:16px;gap:16px;align-items:start}.sidebar{background:#fff;border-radius:10px;box-shadow:0 2px 8px rgba(0,0,0,.08);padding:14px;position:sticky;top:16px}.sidebar h3{margin:0 0 12px;color:#2c3b49;font-size:16px}.sidebar-greeting{font-size:14px;font-weight:600;color:#2f3d4a;margin:4px 0 18px}.sidebar-menu-button{--sidebar-btn-accent:#1f9d55;position:relative;isolation:isolate;width:100%;border:2px solid var(--sidebar-btn-accent);border-radius:6px;background:transparent;padding:10px 14px;text-align:left;margin-bottom:8px;cursor:pointer;color:var(--sidebar-btn-accent);font-weight:700;font-size:14px;overflow:hidden;transition:color .55s ease}.sidebar-menu-button:before{content:"";position:absolute;top:0;left:-40px;width:0;height:100%;transform:skewX(45deg);background-color:var(--sidebar-btn-accent);z-index:-1;transition:width .55s ease}.sidebar-menu-button:hover{color:#fff}.sidebar-menu-button:hover:before{width:160%}.sidebar-menu-button.active{color:#fff}.sidebar-menu-button.active:before{width:160%}.sidebar-menu-button:focus-visible{outline:2px solid var(--sidebar-btn-accent);outline-offset:2px}.sidebar-logout-button{--sidebar-btn-accent:#c53030;margin-top:12px}.page-content{min-width:0}.placeholder-page{background:#fff;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.1);padding:20px}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;z-index:1200}.modal-content{width:min(92vw,640px);max-height:82vh;overflow:auto;background:#fff;border-radius:10px;padding:16px}.bulk-pending-modal{width:min(92vw,900px)}.bulk-pending-empty{margin:12px 0;color:#667085}.bulk-pending-list{max-height:360px;overflow-y:auto;border:1px solid #e3e8ef;border-radius:8px;padding:8px;margin-top:8px;display:grid;grid-gap:10px;gap:10px}.bulk-pending-group{border:1px solid #dfe6ef;border-radius:8px;background:#fbfdff}.bulk-pending-group-head{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px;padding:10px 12px;border-bottom:1px solid #e7edf5;background:#f3f7fd}.bulk-pending-group-meta{min-width:0;display:grid;grid-gap:2px;gap:2px}.bulk-pending-group-label{font-size:12px;color:#526072;font-weight:700}.bulk-pending-group-value{font-size:13px;color:#243447;word-break:break-word}.bulk-pending-group-body{padding:8px;display:grid;grid-gap:6px;gap:6px}.bulk-pending-item{display:flex;align-items:center;grid-gap:8px;gap:8px;padding:8px;border-radius:6px}.bulk-pending-item:hover{background:#f6f9fc}.bulk-pending-text{font-size:14px;color:#2f3d4a;word-break:break-all}.bulk-pending-reject-input{margin-top:10px;min-height:76px;resize:vertical}.bulk-pending-item .checkbox-apple{flex-shrink:0;transform:scale(.85);transform-origin:left center}.checkbox-apple{position:relative;width:50px;height:25px;margin:0;flex-shrink:0;user-select:none;-webkit-user-select:none}.checkbox-apple .checkbox-apple-ui{position:absolute;top:0;left:0;width:50px;height:25px;border-radius:50px;background:linear-gradient(180deg,#b3b3b3,#e6e6e6);cursor:pointer;transition:background .3s ease,box-shadow .2s ease;pointer-events:none}.checkbox-apple .checkbox-apple-ui:after{content:"";position:absolute;top:1px;left:1px;width:23px;height:23px;border-radius:50%;background-color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform .3s ease}.checkbox-apple input[type=checkbox]:checked+.checkbox-apple-ui{background:linear-gradient(180deg,#4cd964,#5de24e)}.checkbox-apple input[type=checkbox]:checked+.checkbox-apple-ui:after{transform:translateX(25px)}.checkbox-apple-native{position:absolute;top:0;left:0;width:50px;height:25px;margin:0;opacity:0;cursor:pointer;z-index:2}.checkbox-apple input[type=checkbox]:disabled{cursor:not-allowed}.checkbox-apple input[type=checkbox]:disabled+.checkbox-apple-ui{opacity:.45;cursor:not-allowed}.checkbox-apple input[type=checkbox]:focus-visible+.checkbox-apple-ui{box-shadow:0 0 0 2px #fff,0 0 0 4px #2f80ed}.mailbox-item-actions .checkbox-apple{transform:scale(.78);transform-origin:center right}.permission-table td:has(.checkbox-apple){text-align:center;vertical-align:middle}.permission-table td:has(.checkbox-apple) .checkbox-apple{margin-left:auto;margin-right:auto;transform:scale(.72);transform-origin:center}.mailbox-modal{width:min(92vw,760px)}.mailbox-page{max-width:840px}.mailbox-page-header{display:flex;align-items:center;justify-content:space-between;grid-gap:12px;gap:12px;margin-bottom:10px}.mailbox-page-header h3{margin:0}.mailbox-header-actions{display:flex;flex-direction:column;align-items:flex-end;grid-gap:2px;gap:2px}.mailbox-select-all-text{border:none;background:none;padding:0;font-size:12px;color:#2f80ed;cursor:pointer}.mailbox-select-all-text:disabled{color:#98a2b3;cursor:default}.mailbox-select-all-text:hover:not(:disabled){text-decoration:underline}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.modal-close{border:none;background:transparent;font-size:24px;line-height:1;cursor:pointer}.modal-actions{display:flex;grid-gap:10px;gap:10px;margin-top:12px}.reject-reason-input{min-height:120px;resize:vertical}.mailbox-list{display:grid;grid-gap:8px;gap:8px}.mailbox-item{border:1px solid #e3e8ef;border-radius:8px;padding:10px}.mailbox-item-head{justify-content:space-between}.mailbox-item-actions,.mailbox-item-head{display:flex;align-items:center;grid-gap:8px;gap:8px}.mailbox-item.unread{border-color:#f29d97;background:#fff7f7}.mailbox-item-title{font-weight:700}.mailbox-item-content{margin-top:6px;white-space:pre-wrap}.mailbox-reject-two-col{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-gap:8px 14px;gap:8px 14px;align-items:start;font-size:13px;color:#1f2937;line-height:1.45}.mailbox-reject-col{min-width:0;white-space:pre-wrap;word-break:break-word}.mailbox-item-time{margin-top:6px;color:#667085;font-size:12px}.permission-page,.permission-table-wrap{overflow-x:auto}.permission-table{width:100%;border-collapse:collapse;min-width:720px}.permission-row-pending-delete td{background:#fff8f6}.permission-delete-cancel,.permission-user-delete{white-space:nowrap;padding:5px 10px;margin:0!important;font-size:11px;line-height:1.2;border-radius:4px}.permission-table td,.permission-table th{border-bottom:1px solid #e3e8ef;padding:10px;text-align:left;font-size:14px}.permission-table th{background:#f6f9fc;color:#2f3d4a}.log-filter-row th{background:#eef2f7;padding:6px 8px}.log-filter-input{width:100%;box-sizing:border-box;padding:5px 8px;border:1px solid #c9d4e0;border-radius:4px;font-size:13px;background:#fff;color:#2f3d4a}.log-filter-input:focus{outline:none;border-color:#4a90d9}.top-buttons{position:static;display:flex;justify-content:flex-end;grid-gap:10px;gap:10px;z-index:10;margin-bottom:10px}.top-buttons .button{margin:0}.button{display:inline-block;padding:10px 20px;margin:20px 0;background-color:#5cb85c;color:#fff;border:none;border-radius:5px;cursor:pointer}.button:hover{background-color:#4cae4c}.button-controller{background-color:#d9534f}.button-controller:hover{background-color:#c9302c}.button-cancel{background-color:#d9534f;margin-left:10px}.button-cancel:hover{background-color:#c9302c}.error-box{background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb;border-radius:5px;padding:12px 15px;margin-bottom:15px}.spec-list-anchor{scroll-margin-top:72px}.spec-list{list-style:none;padding:0}.spec-item{background:#fff;margin:10px 0;padding:15px;border-radius:5px;box-shadow:0 2px 5px rgba(0,0,0,.1);cursor:pointer}.spec-details{display:none;padding:10px}.popup{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.5);display:flex;justify-content:center;align-items:center}.popup-content{background:#fff;padding:20px;border-radius:10px;width:90%;max-width:800px;max-height:80%;overflow-y:auto;position:relative}.toast-popup{position:fixed;top:50%;left:50%;background-color:rgba(220,53,69,.95);color:#fff;padding:12px 16px;border-radius:8px;box-shadow:0 4px 14px rgba(0,0,0,.15);z-index:1000;min-width:240px;text-align:center;opacity:0;transform:translate(-50%,-50%) scale(.96);transition:opacity .25s ease,transform .25s ease}.toast-popup.show{opacity:1;transform:translate(-50%,-50%) scale(1)}.toast-popup.toast-success{background-color:rgba(40,167,69,.95)}.toast-popup.toast-error{background-color:rgba(220,53,69,.95)}.model-name{background:#e9ecef;padding:10px;margin:10px 0;border-radius:5px;cursor:pointer;font-size:18px;font-weight:700;display:flex;flex-wrap:nowrap;align-items:center;grid-gap:10px;gap:10px;min-width:0}.model-name:hover{background:#d6d8db}.model-name.model-name-detail-locked{cursor:not-allowed}.model-name.model-name-detail-locked:hover{background:#e9ecef}.model-name .model-type-badge,.model-name .review-dot,.model-name .review-event-chip{flex-shrink:0}.model-list-main-cols{display:contents}.model-name.model-name-general{display:grid;grid-template-columns:auto minmax(0,2fr) minmax(0,2fr) minmax(0,1fr) 360px;align-items:center;grid-gap:10px;gap:10px}.model-name.model-name-general.model-name-with-selector{position:relative;padding-left:38px}.model-name.model-name-general.model-name-with-selector .model-row-selector-wrap{position:absolute;left:6px;top:50%;transform:translateY(-50%);z-index:2;display:flex;align-items:center}.model-name.model-name-general.model-name-with-selector .model-row-selector-wrap .checkbox-apple{transform:scale(.55);transform-origin:left center}.model-name.model-name-general .model-list-main-cols{display:contents}.model-name.model-name-general .model-name-trailing{margin-left:0;justify-self:stretch;min-width:0;max-width:100%;display:flex;justify-content:flex-end;align-items:center;grid-gap:6px;gap:6px;flex-wrap:nowrap;overflow-x:auto}.model-name.model-name-general .model-actions{min-width:0}.model-name.model-name-general .model-list-household,.model-name.model-name-general .model-list-product,.model-name.model-name-general .model-list-site{flex:initial;min-width:0}.model-list-review-plain{display:inline-flex;flex-wrap:wrap;align-items:baseline;grid-gap:0 8px;gap:0 8px;max-width:min(240px,42vw);font-size:13px;font-weight:600;line-height:1.3;color:#344054}.model-list-review-author{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;font-weight:600;color:#475467}.model-list-review-status{white-space:nowrap;font-weight:700}.model-list-review-status.is-pending{color:#b42318}.model-list-review-status.is-reject{color:#7f1d1d}.model-list-product,.model-list-site{flex:0 1 40%}.model-list-household,.model-list-product,.model-list-site{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.model-list-household{flex:0 1 20%}.model-name-trailing{margin-left:auto;grid-gap:10px;gap:10px;flex-wrap:nowrap}.model-name-trailing,.model-review-status-strip{display:flex;align-items:center;min-width:0;flex-shrink:0}.model-actions{flex-shrink:0;display:flex;grid-gap:8px;gap:8px;align-items:center;justify-content:flex-end;min-width:210px}.model-collapsed-extra{margin-top:-4px;margin-bottom:10px}.review-status-with-author{display:flex;align-items:center;grid-gap:10px;gap:10px;flex-wrap:nowrap;min-width:0}.review-author-prefix{font-size:12px;font-weight:600;color:#344054;white-space:nowrap;flex-shrink:0}.review-pending-label{color:#b42318;font-size:13px;font-weight:700;white-space:nowrap}.review-rejected-label{color:#7f1d1d}.spec-reject-under-memo{grid-column:1/-1}.spec-reject-history-inline{white-space:pre-wrap;word-break:break-word;line-height:1.5;color:#1f2a37}.model-edit-button{margin:0;padding:6px 10px;font-size:13px}.edit-top-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px;margin-bottom:10px}.list-container{display:grid;grid-template-columns:1fr 1fr;grid-gap:20px;gap:20px}.button-group{display:flex;grid-gap:10px;gap:10px;margin-bottom:20px}.button-group .button{margin:0}.model-header{align-items:center;grid-gap:10px;gap:10px}.model-type-badge{display:inline-block;padding:3px 6px;border-radius:5px;font-weight:700;font-size:12px;grid-column:1;white-space:nowrap}.model-type-badge.조절기{background-color:#28a745;color:#fff}.model-type-badge.제어기{background-color:#dc3545;color:#fff}.model-list-section{background:#fff;padding:20px;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.1);margin:0 0 20px}.model-list-section h3{margin-top:0;color:#333;padding-bottom:0}.model-list-head{display:flex;align-items:center;justify-content:space-between;grid-gap:10px;gap:10px;border-bottom:2px solid #5cb85c;padding-bottom:10px}.model-list-head h3{margin-bottom:0;flex:1 1}.model-list-head-right{display:flex;align-items:center;grid-gap:10px;gap:10px;justify-content:flex-end;flex-wrap:wrap}.bulk-firmware-head-wrap{display:flex;align-items:center;grid-gap:8px;gap:8px;flex-wrap:wrap}.bulk-firmware-pending-open,.bulk-firmware-toggle{margin:0;padding:6px 12px;font-size:13px}.bulk-firmware-inline-form{display:flex;align-items:center;grid-gap:8px;gap:8px;flex-wrap:wrap}.bulk-firmware-file-input{width:220px;min-width:180px}.bulk-firmware-file-name{font-size:12px;color:#475467;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bulk-firmware-memo-input{width:220px;min-width:180px;min-height:36px;max-height:72px;resize:vertical}.bulk-firmware-cancel,.bulk-firmware-confirm{margin:0;padding:6px 10px;font-size:12px}.model-row-selector-wrap{display:inline-flex;align-items:center}.type-filter-buttons{display:flex;grid-gap:8px;gap:8px}.type-filter-button{margin:0;padding:6px 12px;font-size:13px;font-weight:700;border:1px solid transparent;border-radius:6px;color:#fff;transition:opacity .2s ease,filter .2s ease}.type-filter-button.adjuster{background:#1f9d55;border-color:#1f9d55}.type-filter-button.controller{background:#d92d20;border-color:#d92d20}.type-filter-button:focus-visible{outline:2px solid #98a2b3;outline-offset:2px}.type-filter-button.off{opacity:.45}.empty-list-message{padding:20px 0 8px;color:#667085;text-align:center}.review-card-list{display:grid;grid-gap:12px;gap:12px}.review-card{border:1px solid #e3e8ef;border-radius:8px;padding:14px;background:#fff}.review-card-head{display:flex;justify-content:space-between;grid-gap:10px;gap:10px;align-items:center}.review-card-title-wrap{display:flex;align-items:center;grid-gap:8px;gap:8px}.review-dot{width:10px;height:10px;border-radius:50%;background:#d92d20;display:inline-block}.review-event-chip{background:#fde2e1;color:#b42318;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:700}.review-card-sub{margin-top:6px;color:#475467;font-size:13px}.review-diff-wrap{margin-top:10px;font-size:13px}.review-diff-wrap h4{margin:0 0 6px}.review-diff-list{margin:0;padding-left:18px}.review-diff-label{font-weight:700}.review-request-type-text{margin:8px 0 14px;font-size:14px;font-weight:700;color:#2f3d4a}@media (max-width:900px){.workspace-layout{width:92%;grid-template-columns:1fr}.sidebar{position:static}.search-bar-wrap{grid-template-columns:1fr}.search-main-right{width:100%}.korea-map-panel{width:96%}.korea-map-level.single{max-width:100%}}.pagination-wrap{margin-top:16px;display:flex;justify-content:center;align-items:center;grid-gap:8px;gap:8px;flex-wrap:wrap}.pagination-button{border:1px solid #c8d0da;background:#fff;color:#2a3442;border-radius:6px;padding:6px 10px;min-width:36px;cursor:pointer}.pagination-button:hover:not(:disabled){background:#eef5ff;border-color:#8dbbff}.pagination-button.active{background:#2f80ed;color:#fff;border-color:#2f80ed}.pagination-button:disabled{opacity:.5;cursor:not-allowed}.form-page{background:#fff;padding:20px;margin:70px 0 20px;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.1)}.form-page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.form-header-actions{display:flex;align-items:center;grid-gap:8px;gap:8px}.form-header-actions .button{margin:0}.button-add-spec{background-color:#2f80ed}.button-add-spec:hover{background-color:#1f6fd8}.button-delete-spec{background-color:#6b7280}.button-delete-spec:hover{background-color:#4b5563}.form-page-title-wrap{display:flex;align-items:center;grid-gap:16px;gap:16px}.form-switch-buttons{display:flex;grid-gap:10px;gap:10px;flex-wrap:nowrap;align-items:center}.form-switch-buttons .button{margin:0}.region-select{min-width:112px;max-width:132px;height:36px}.region-detail-inline{flex:1 1 200px;min-width:0;max-width:min(420px,46vw)}.region-detail-inline .field-input{width:100%;height:36px;box-sizing:border-box}.button-active{box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.95),0 0 0 2px rgba(0,0,0,.08)}.form-page-header h2{margin:0}.form-page-content{position:relative}.form-fields-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px 14px;gap:12px 14px}.form-field{display:flex;flex-direction:column;grid-gap:6px;gap:6px}.spec-edit-top-row{margin-bottom:12px}.spec-edit-fields-grid .field-label{font-size:16px}.form-field.full-width{grid-column:1/-1}.top-required-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px 14px;gap:12px 14px;grid-column:1/-1}.top-required-row-triple{grid-template-columns:2fr 2fr 1fr}.field-label{font-size:20px;font-weight:700;color:#222}.required-mark{color:#d93025;margin-right:2px}.field-input{width:100%;box-sizing:border-box;height:38px;border:1px solid #ccd3db;border-radius:6px;padding:0 10px;font-size:14px;color:#1f2a37;background:#fff}.field-input:focus{outline:2px solid #8dbbff;outline-offset:0;border-color:#7eaef2}.spec-dropdown-root{position:relative;width:100%}button.spec-dropdown-trigger.field-input{display:flex;align-items:center;justify-content:space-between;grid-gap:8px;gap:8px;cursor:pointer;text-align:left;font-family:inherit}.spec-dropdown-trigger-chevron{flex-shrink:0;opacity:.55;font-size:12px}.spec-dropdown-trigger-label{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spec-dropdown-panel{box-sizing:border-box;background:#fff;border:1px solid #ccd3db;border-radius:6px;box-shadow:0 8px 24px rgba(0,0,0,.14);padding:8px;max-height:280px;display:flex;flex-direction:column;grid-gap:6px;gap:6px}.spec-dropdown-search{flex-shrink:0}.spec-dropdown-list{list-style:none;margin:0;padding:0;overflow-y:auto;max-height:210px}.spec-dropdown-option{width:100%;text-align:left;border:none;background:transparent;padding:8px 10px;border-radius:4px;cursor:pointer;font:inherit;color:#1f2a37}.spec-dropdown-option:hover{background:#e9ecef}.spec-dropdown-option.is-selected{background:#cfe2ff;font-weight:600}.spec-dropdown-empty,.spec-dropdown-option-legacy{color:#6c757d;font-size:13px}.spec-dropdown-empty{padding:6px 8px}.dark-mode .spec-dropdown-panel{background:#1e232e;border-color:#3c4251;box-shadow:0 8px 24px rgba(0,0,0,.45)}.dark-mode button.spec-dropdown-trigger.field-input{background:#121212;color:#d4dbe7;border-color:#3c4251}.dark-mode .spec-dropdown-option{color:#d4dbe7}.dark-mode .spec-dropdown-option:hover{background:#2a2f3b}.dark-mode .spec-dropdown-option.is-selected{background:#2f4a7c}.dark-mode .spec-dropdown-empty{color:#9aa5b5}.file-field-wrap{display:flex;flex-direction:column;grid-gap:8px;gap:8px}.file-selected-row{display:flex;align-items:center;grid-gap:8px;gap:8px}.file-selected-item{border:1px dashed #d0d7e2;border-radius:6px;padding:8px}.file-selected-name{font-size:13px;color:#2f3d4a;word-break:break-all}.file-clear-button{margin:0;padding:6px 10px;font-size:12px}.firmware-description-input{min-height:70px;padding:8px 10px;resize:vertical}.form-actions{margin-top:20px}@media (max-width:900px){.form-fields-grid,.top-required-row{grid-template-columns:1fr}.form-page-header,.form-page-title-wrap{flex-direction:column;align-items:flex-start}.form-page-header{grid-gap:10px;gap:10px}.form-switch-buttons{flex-wrap:wrap}}.spec-grid{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));grid-gap:0;gap:0;margin-top:18px;border:1px solid #cfd7df;border-right:none;border-bottom:none;background:#fff}.spec-view-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px 10px;gap:8px 10px;margin-top:12px}.spec-view-item{display:flex;flex-direction:column;grid-gap:6px;gap:6px}.spec-view-item.full-width{grid-column:1/-1}.spec-view-item>label{font-size:16px;font-weight:700;color:#222}.spec-view-item .field-input,.spec-view-item .spec-file-view,.spec-view-value{border:1px solid #ccd3db;border-radius:6px;background:#fff}.spec-view-value{min-height:32px;padding:6px 8px;font-size:13px;color:#1f2a37;line-height:1.45;white-space:pre-wrap;word-break:break-word}.spec-view-item .field-input{height:38px;padding:0 10px}.spec-view-file-box{border:1px solid #ccd3db;border-radius:8px;background:#fff;padding:8px}.spec-view-file-box .spec-image-grid{grid-gap:8px;gap:8px}.spec-view-file-box .spec-upload-preview{height:92px}.spec-view-file-box .spec-firmware-row-wrap{padding:6px;border:1px solid #d9e1e8;border-radius:6px;background:#f8fafc}.spec-input{display:flex;flex-direction:column;grid-gap:0;gap:0;border-right:1px solid #cfd7df;border-bottom:1px solid #cfd7df;min-height:96px}.spec-input.full-width{grid-column:1/-1}.spec-input label{font-size:12px;font-weight:600;margin-bottom:0;padding:8px 10px;background:#f1f5f9;border-bottom:1px solid #d9e1e8}.spec-changed-dot{width:8px;height:8px;border-radius:50%;background:#d92d20;display:inline-block;margin-right:6px}.spec-input input,.spec-input select{padding:10px;border:none;border-radius:0;width:100%;box-sizing:border-box;background:transparent;flex:1 1}.spec-input select{font-size:14px;color:#1f2a37;cursor:pointer}.spec-input select:disabled{cursor:default;opacity:.92}.spec-input input:focus,.spec-input select:focus{outline:2px solid #7ab8ff;outline-offset:-2px;background:#f8fbff}.spec-file-view{padding:10px;display:flex;flex-direction:column;grid-gap:8px;gap:8px}.spec-upload-preview{width:100%;height:120px;border:1px solid #d9e1e8;border-radius:6px;object-fit:contain;background:#fff}.spec-image-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-gap:8px;gap:8px}.spec-image-item{position:relative;min-width:0}.spec-image-delete-button{position:absolute;top:4px;right:4px;width:22px;height:22px;border:none;border-radius:999px;background:rgba(217,45,32,.92);color:#fff;cursor:pointer;font-weight:700;line-height:1;display:flex;align-items:center;justify-content:center}.spec-image-delete-button:hover{background:rgba(180,35,24,.95)}.lightbox-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.75);z-index:1300}.lightbox-backdrop,.lightbox-content{display:flex;align-items:center;justify-content:center}.lightbox-content{position:relative;width:min(92vw,1100px);max-height:90vh}.lightbox-image{max-width:100%;max-height:88vh;object-fit:contain;border-radius:8px;background:#fff}.lightbox-close{position:absolute;top:8px;right:8px;width:30px;height:30px;border:none;border-radius:999px;background:rgba(0,0,0,.6);color:#fff;font-size:20px;cursor:pointer}.spec-file-link{color:#2f80ed;text-decoration:none;word-break:break-all}.spec-file-link:hover{text-decoration:underline}.spec-file-empty{color:#667085;font-size:13px}.spec-file-actions,.spec-firmware-row{display:flex;align-items:center;grid-gap:8px;gap:8px;flex-wrap:wrap}.spec-firmware-row-wrap{position:relative;display:inline-block}.spec-firmware-name{font-size:12px;color:#4b5563;word-break:break-all}.spec-download-button{margin:0;padding:6px 10px;font-size:12px;text-decoration:none}.review-inline-change{margin-top:6px;padding:6px 8px;border-radius:4px;background:#fff4f4;color:#7a271a;font-size:12px;line-height:1.4}.firmware-edit-row{border:1px dashed #d0d7e2;border-radius:6px;padding:8px}.spec-firmware-tooltip{position:absolute;top:calc(100% + 6px);left:0;min-width:220px;max-width:320px;background:#fff;border:1px solid #d0d7e2;border-radius:6px;box-shadow:0 8px 20px rgba(0,0,0,.12);padding:8px 10px;font-size:12px;color:#1f2a37;line-height:1.45;display:none;z-index:20;white-space:pre-wrap}.spec-firmware-row-wrap:hover .spec-firmware-tooltip{display:block}@media (max-width:900px){.spec-grid{grid-template-columns:repeat(3,minmax(120px,1fr))}.spec-view-grid{grid-template-columns:1fr}}@media (max-width:560px){.spec-grid{grid-template-columns:repeat(2,minmax(120px,1fr))}.spec-image-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.spec-item.active .spec-details{display:block}.popup-content input{width:100%;padding:10px;margin:10px 0;border:1px solid #ddd;border-radius:5px}.popup-content .close{background:#d9534f;color:#fff;border:none;border-radius:5px;cursor:pointer}.popup-content .close:hover{background:#c9302c}.settings-page{max-width:480px}.settings-row{display:flex;align-items:center;grid-gap:14px;gap:14px;padding:14px 0;border-bottom:1px solid #e3e8ef;font-size:15px;color:#2f3d4a}.settings-label{flex:1 1;font-weight:500;cursor:pointer}.dark-mode{background-color:#000;color:#d4dbe7}.dark-mode,.dark-mode .App,.dark-mode body{background-color:#000;color:#d4dbe7;min-height:100vh}body.dark-mode{background-color:#000}.dark-mode h1,.dark-mode h3{color:#e0e6ef}.dark-mode .sidebar{background:#111;border-right-color:#2e333d}.dark-mode .mailbox-button{background:#2a2f3b;color:#d4dbe7;border-color:#3c4251}.dark-mode .sidebar h3{color:#a0aabb}.dark-mode .sidebar-greeting{color:#d4dbe7}.dark-mode .sidebar-menu-button{--sidebar-btn-accent:#3fbf6a;color:#bfeecf;background:transparent}.dark-mode .sidebar-menu-button.active,.dark-mode .sidebar-menu-button:hover{color:#fff;background:transparent}.dark-mode .sidebar-logout-button{--sidebar-btn-accent:#e07a7a;color:#f5c4c4}.dark-mode .page-content,.dark-mode .workspace-layout{background:#000;min-height:100vh}.dark-mode .placeholder-page{background:#111;color:#d4dbe7}.dark-mode .search-input,.dark-mode .spec-filter-input,.dark-mode .spec-filter-select{background:#2a2f3b;color:#d4dbe7;border-color:#3c4251}.dark-mode .korea-map-panel{background:#111;border-color:#3c4251}.dark-mode .korea-map-help{color:#b8c2d6}.dark-mode .korea-map-level{background:#1a1f29;border-color:#3c4251}.dark-mode .korea-map-back-button{background:#22262e;border-color:#3c4251;color:#d4dbe7}.dark-mode .kakao-map-canvas{border-color:#3c4251}.dark-mode .kakao-region-bubble{background:rgba(34,38,46,.92);color:#e6edf8;border-color:#7eb8ff}.dark-mode .kakao-region-bubble.zero-count{opacity:.46}.dark-mode .kakao-region-bubble.gugun{border-color:#6ee7b7}.dark-mode .kakao-region-bubble.dong{border-color:#fbbf24}.dark-mode .kakao-region-label{color:#e6edf8;background:transparent;border:none}.dark-mode .kakao-region-label.zero-count{opacity:.46}.dark-mode .kakao-map-error{border-color:#7a3030;background:#3a2020;color:#f08080}.dark-mode .korea-svg-frame{fill:#111;stroke:#3c4251}.dark-mode .korea-svg-terrain{fill:#1b2230;stroke:#344055}.dark-mode .korea-svg-region rect{fill:#22262e;stroke:#3c4251}.dark-mode .korea-svg-region.active rect{fill:#243042;stroke:#7eb8ff}.dark-mode .korea-svg-label{fill:#c5cdd9}.dark-mode .korea-svg-count{fill:#e6edf8}.dark-mode .korea-map-chip{background:#22262e;border-color:#3c4251;color:#d4dbe7}.dark-mode .korea-map-chip.active{border-color:#7eb8ff;background:#243042}.dark-mode .permission-table th{background:#161616;color:#a0aabb}.dark-mode .log-filter-row th{background:#141414}.dark-mode .log-filter-input{background:#2a2f3b;color:#d4dbe7;border-color:#3c4251}.dark-mode .permission-table td,.dark-mode .permission-table th{border-bottom-color:#2e333d}.dark-mode .permission-table tr:hover td{background:#272c38}.dark-mode .permission-row-pending-delete td{background:#2a1f1f}.dark-mode .model-list-section{background:#111;box-shadow:0 2px 8px rgba(0,0,0,.4)}.dark-mode .model-list-section h3{color:#d4dbe7}.dark-mode .model-list-head{border-bottom-color:#3a8a4a}.dark-mode .type-filter-button.off{opacity:.5}.dark-mode .model-name{background:#2a2f3b;color:#d4dbe7}.dark-mode .model-name:hover{background:#323849}.dark-mode .model-name.model-name-detail-locked:hover{background:#2a2f3b}.dark-mode .model-list-review-author,.dark-mode .model-list-review-plain{color:#c5cdd9}.dark-mode .model-list-review-status.is-pending{color:#ff9f9a}.dark-mode .model-list-review-status.is-reject{color:#ffb4ac}.dark-mode .bulk-firmware-file-name{color:#c5cdd9}.dark-mode .bulk-pending-text{color:#d4dbe7}.dark-mode .bulk-pending-group{border-color:#3c4251;background:#151922}.dark-mode .bulk-pending-group-head{border-bottom-color:#3c4251;background:#1d2430}.dark-mode .bulk-pending-group-label{color:#9fb0c8}.dark-mode .bulk-pending-group-value{color:#d4dbe7}.dark-mode .review-author-prefix{color:#c5cdd9}.dark-mode .review-pending-label{color:#ff9f9a}.dark-mode .review-rejected-label{color:#ffb4ac}.dark-mode .spec-reject-history-inline{color:#d4dbe7}.dark-mode .review-card{background:#121212;border-color:#3c4251}.dark-mode .review-event-chip{background:#5b2320;color:#ffb4ac}.dark-mode .review-card-sub{color:#c5cdd9}.dark-mode .review-request-type-text{color:#d4dbe7}.dark-mode .empty-list-message{color:#7a8a9e}.dark-mode .spec-grid{background:#22262e;border-color:#3c4251}.dark-mode .spec-view-item>label{color:#e6edf8}.dark-mode .spec-view-item .field-input,.dark-mode .spec-view-item .spec-file-view,.dark-mode .spec-view-value{background:#2a2f3b;color:#d4dbe7;border-color:#3c4251}.dark-mode .spec-view-file-box{background:#2a2f3b;border-color:#3c4251}.dark-mode .spec-view-file-box .spec-firmware-row-wrap{background:#1f2430;border-color:#3c4251}.dark-mode .spec-input{border-right-color:#3c4251;border-bottom-color:#3c4251}.dark-mode .spec-input label{background:#2a2f3b;color:#a0aabb;border-bottom-color:#3c4251}.dark-mode .spec-input input{background:#22262e;color:#d4dbe7}.dark-mode .spec-input input:focus{background:#272c38;outline-color:#4a7abf}.dark-mode .spec-input select{background:#22262e;color:#d4dbe7}.dark-mode .spec-input select:focus{background:#272c38;outline-color:#4a7abf}.dropdown-manage-help{margin:0 0 16px;font-size:14px;color:#475467;line-height:1.5}.dropdown-manage-add-form{margin-bottom:20px;padding:14px;border:1px solid #e3e8ef;border-radius:8px;background:#f8fafc}.dropdown-manage-row{display:flex;flex-wrap:wrap;align-items:center;grid-gap:10px;gap:10px;margin-bottom:10px}.dropdown-manage-row:last-child{margin-bottom:0}.dropdown-manage-label{min-width:72px;font-weight:600;font-size:14px;color:#2f3d4a}.dropdown-manage-title-select{flex:1 1;min-width:200px;max-width:420px}.dropdown-manage-list-wrap h4{margin:0 0 10px;font-size:15px;color:#2f3d4a}.dropdown-manage-empty{color:#667085;font-size:14px}.dropdown-manage-option-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;grid-gap:8px;gap:8px}.dropdown-manage-option-item{display:flex;align-items:center;justify-content:space-between;grid-gap:12px;gap:12px;padding:10px 12px;border:1px solid #e3e8ef;border-radius:8px;background:#fff}.dropdown-manage-option-text{font-size:14px;word-break:break-all}.dark-mode .dropdown-manage-help{color:#b8c2d6}.dark-mode .dropdown-manage-add-form{background:#1a1f29;border-color:#3c4251}.dark-mode .dropdown-manage-label,.dark-mode .dropdown-manage-list-wrap h4{color:#d4dbe7}.dark-mode .dropdown-manage-empty{color:#7a8a9e}.dark-mode .dropdown-manage-option-item{background:#121212;border-color:#3c4251}.dark-mode .edit-top-row input{background:#2a2f3b;color:#d4dbe7;border-color:#3c4251}.dark-mode .spec-item{background:#22262e;border-color:#2e333d}.dark-mode .spec-header{background:#272c38;color:#d4dbe7}.dark-mode .spec-header:hover{background:#2f3644}.dark-mode .spec-details-table th{background:#2a2f3b;color:#a0aabb}.dark-mode .spec-details-table td{color:#c8d1e0;border-bottom-color:#2e333d}.dark-mode .button{background:#2f80ed;color:#fff}.dark-mode .pagination-button{background:#22262e;color:#c5cdd9;border-color:#3c4251}.dark-mode .pagination-button:hover:not(:disabled){background:#2a2f3b;border-color:#7eb8ff}.dark-mode .pagination-button.active{background:#2f80ed;color:#fff;border-color:#2f80ed}.dark-mode .error-box{background:#3a2020;color:#f08080;border-color:#7a3030}.dark-mode .settings-row{border-bottom-color:#2e333d;color:#d4dbe7}.dark-mode .checkbox-apple .checkbox-apple-ui{background:linear-gradient(180deg,#4a4d54,#5c6068)}.dark-mode .checkbox-apple input[type=checkbox]:checked+.checkbox-apple-ui{background:linear-gradient(180deg,#3a9d4f,#4cb356)}.dark-mode .checkbox-apple input[type=checkbox]:focus-visible+.checkbox-apple-ui{box-shadow:0 0 0 2px #111,0 0 0 4px #7eb8ff}.dark-mode .field-input,.dark-mode .field-select{background:#2a2f3b;color:#d4dbe7;border-color:#3c4251}.dark-mode .field-label,.dark-mode .form-page-header h2{color:#e6edf8}.dark-mode .file-selected-name,.dark-mode .spec-file-empty{color:#d4dbe7}.dark-mode .spec-upload-preview{border-color:#3c4251;background:#22262e}.dark-mode .spec-image-delete-button{background:rgba(208,44,35,.95)}.dark-mode .spec-file-link{color:#7eb8ff}.dark-mode .spec-firmware-name{color:#b8c2d6}.dark-mode .spec-firmware-tooltip{background:#2a2f3b;border-color:#3c4251;color:#d4dbe7}.dark-mode .file-selected-item,.dark-mode .firmware-edit-row{border-color:#3c4251}.dark-mode .review-inline-change{background:#4a2424;color:#ffb4ac}.dark-mode .modal-content{background:#111;color:#d4dbe7}.dark-mode .mailbox-item{border-color:#3c4251;background:#121212}.dark-mode .mailbox-item.unread{border-color:#8a3a36;background:#412626}.dark-mode .mailbox-item-time{color:#b8c2d6}.dark-mode .mailbox-reject-two-col{color:#d4dbe7}.dark-mode .mailbox-select-all-text{color:#7eb8ff}.dark-mode .mailbox-select-all-text:disabled{color:#7a8a9e}.dark-mode .form-page{background:#22262e;box-shadow:0 2px 8px rgba(0,0,0,.4)}.dark-mode .login-card{background:#22262e;box-shadow:0 8px 24px rgba(0,0,0,.4)}.dark-mode .login-card h2{color:#d4dbe7}.dark-mode .login-input{background:#2a2f3b;color:#d4dbe7;border-color:#3c4251}.dark-mode .login-page{background:#1a1d23}
/*# sourceMappingURL=main.906f5252.chunk.css.map */