:root{--font-family-base: "NotoSansKR", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--color-text-primary: #3b4a6b;--color-text-secondary: #5c6478;--color-text-muted: #6b7280;--color-surface-base: #ffffff;--color-surface-subtle: #f5f6f8;--font-size-heading-lg: clamp(16px, 1.3vw, 21px);--font-size-heading-md: clamp(14px, 1.1vw, 18px);--font-size-title: clamp(13px, 1vw, 16px);--font-size-body-lg: clamp(12px, .95vw, 15px);--font-size-body-md: clamp(11px, .9vw, 13px);--font-size-body-sm: clamp(10px, .85vw, 12px);--font-size-caption: clamp(9px, .75vw, 11px);font-family:var(--font-family-base);line-height:1.5;font-weight:400;color:var(--color-text-primary);background-color:var(--color-surface-subtle);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body{margin:0;width:100%;min-width:0;min-height:100vh;font-family:var(--font-family-base);color:var(--color-text-primary);background-color:var(--color-surface-subtle);overflow-x:hidden}a{color:inherit;text-decoration:none}#root{width:100%;min-height:100vh;margin:0;padding:0}.app-layout{display:flex;width:100%;height:100vh;margin:0;padding:0;background-color:var(--color-surface-subtle);box-sizing:border-box;overflow:hidden;overflow-x:hidden}.app-layout-content{flex:1;display:flex;flex-direction:column;min-height:0;background-color:var(--color-surface-subtle);min-width:0;overflow:hidden}.app-layout-main{flex:1;display:flex;justify-content:flex-start;align-items:stretch;overflow-y:auto;overflow-x:hidden;box-sizing:border-box;padding:clamp(8px,.7vw,14px);min-height:0;min-width:0}.sidebar-container{box-sizing:border-box;width:220px;height:100vh;background-color:var(--color-surface-base);display:flex;flex-direction:column;align-items:center;padding:24px 0;box-shadow:0 2px 12px #00000014;flex-shrink:0;overflow-y:auto;color:var(--color-text-primary)}.logo-container{width:190px;height:64px;display:flex;flex-direction:row;align-items:center;margin-bottom:24px}.logo-container>.logo-text{width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;margin-left:20px;text-align:left}.logo-text .upper{font-family:"inter",var(--font-family-base);font-size:var(--font-size-title);font-weight:800;color:var(--color-text-primary)}.logo-text .down{font-size:var(--font-size-body-sm);font-weight:400;color:var(--color-text-secondary)}.nav-button{width:190px;height:42px;margin:3px 0;border-radius:10px;border:none;background-color:transparent;display:flex;flex-direction:row;align-items:center;padding-left:16px;text-decoration:none;color:var(--color-text-primary)}.nav-button img{width:clamp(14px,1vw,16px);height:clamp(14px,1vw,16px)}.nav-button .button-text{font-family:var(--font-family-base);font-size:var(--font-size-body-md);font-weight:400;margin-left:10px}.nav-button:hover{background-color:#ecedf1;cursor:pointer;box-shadow:0 2px 4px #0006}.nav-button.active{background-color:#ecedf1;box-shadow:0 2px 4px #0006}.nav-button.active .button-text{color:var(--color-text-primary);font-weight:700}.nav-icon{width:18px;height:18px;stroke-width:2}.nav-button.active .nav-icon{stroke-width:2.7;color:var(--color-text-primary)}.nav-button:hover .button-text{color:var(--color-text-primary);font-weight:700}.nav-button:hover .nav-icon{stroke-width:2.7;color:var(--color-text-primary)}.topbar-container{box-sizing:border-box;width:100%;height:72px;background-color:var(--color-surface-base);display:flex;flex-direction:column;align-items:flex-end;justify-content:center;box-shadow:0 2px 4px #00000014;flex-shrink:0}.topbar-right{display:flex;align-items:center;gap:clamp(12px,1.8vw,20px);padding:0 clamp(14px,2vw,28px);position:relative}.topbar-icon{position:relative;cursor:pointer;color:var(--color-text-primary)}.notification-dot{position:absolute;top:0;right:0;width:8px;height:8px;background-color:#ef4444;border-radius:50%}.topbar-profile{width:clamp(32px,2.2vw,36px);height:clamp(32px,2.2vw,36px);border-radius:50%;object-fit:cover;cursor:pointer;transition:border-color .2s ease}.topbar-profile:hover{box-shadow:0 6px 12px #3b4a6b40}.topbar-name{font-size:var(--font-size-body-lg);font-weight:600;color:var(--color-text-primary)}.profile-menu{position:absolute;right:0;top:60px;background:var(--color-surface-base);border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 2px 8px #00000014;display:flex;flex-direction:column;padding:6px 0;min-width:140px;z-index:10}.profile-menu p{margin:0;padding:10px 16px;font-size:var(--font-size-body-md);color:var(--color-text-secondary);cursor:pointer}.profile-menu p:hover{background-color:#f3f4f6}.topbar-login-link{color:var(--color-text-primary);font-weight:500;font-size:var(--font-size-body-md);cursor:pointer;margin-left:4px;padding:clamp(6px,.8vw,10px) clamp(12px,1.1vw,16px);border-radius:8px;transition:all .2s ease-in-out}.topbar-login-link:hover{background-color:#f3f4f6;color:#2f3b5a}.topbar-login-link:active{transform:translateY(0);box-shadow:none}.home-wrapper{display:flex;flex-direction:column;gap:clamp(10px,1vw,14px);width:100%;height:100%;box-sizing:border-box;overflow:hidden;padding:clamp(0px,1vw,2px)}.home-row{width:100%;display:flex;gap:clamp(10px,1vw,14px)}.home-small-row{height:240px;flex-shrink:0;display:flex}.home-small-row>*{min-width:220px}.home-big-row{flex:1;min-height:0;max-height:100%;display:flex;gap:clamp(10px,1vw,14px)}.home-big-row>*{flex:1;min-width:350px;min-height:0}.home-big{flex:1;min-width:300px;max-width:100%;height:100%;max-height:100%;min-height:0;overflow:hidden;border-radius:clamp(8px,.9vw,12px);background-color:var(--color-surface-base);color:var(--color-text-primary);box-shadow:0 2px 4px #00000040;display:flex;flex-direction:column;align-items:stretch;padding:clamp(16px,1.5vw,20px) clamp(14px,1.5vw,20px) clamp(14px,1.3vw,18px);box-sizing:border-box}.home-big-header{width:100%;display:flex;justify-content:space-between;align-items:center;padding:0;margin-bottom:clamp(8px,1vw,12px);box-sizing:border-box;flex-shrink:0}.home-big-header img{width:clamp(14px,1.1vw,17px);height:clamp(14px,1.1vw,17px);filter:opacity(.95)}.title{font-family:var(--font-family-base);font-size:var(--font-size-title);font-weight:800;color:var(--color-text-primary)}.home-table{width:100%;display:flex;flex-direction:column;flex:1;overflow:hidden}.home-table .list-header{width:100%;height:clamp(38px,3.2vw,46px);display:flex;align-items:center;background-color:var(--color-surface-subtle);border-bottom:1px solid #e5e7eb;border-radius:clamp(6px,.6vw,8px) clamp(6px,.6vw,8px) 0 0;flex-shrink:0}.home-table .list-header>div{font-family:var(--font-family-base);font-size:var(--font-size-body-md);font-weight:600;color:var(--color-text-secondary);display:flex;align-items:center;padding-left:clamp(8px,.9vw,12px);box-sizing:border-box}.home-table .col-worker{width:20%}.home-table .col-content{width:40%}.home-table .col-status,.home-table .col-time{width:20%}.home-table .col-description{width:0;display:none}.home-table .list-body{width:100%;flex:1;overflow-y:auto;display:block;flex-direction:column;border-bottom-left-radius:clamp(6px,.7vw,8px);border-bottom-right-radius:clamp(6px,.7vw,8px);min-height:0}.home-table .list-body::-webkit-scrollbar{display:none}.home-table .list-body .no-data{text-align:center;padding:clamp(18px,2.2vw,24px) 0;font-family:var(--font-family-base);font-size:var(--font-size-body-md);color:var(--color-text-muted)}.home-table .list-body .work-row{width:100%}.home-table .col-actions-header{width:20%}.home-table .col-actions{width:20%;display:flex;align-items:center;gap:6px;justify-content:flex-start;padding-left:10px;box-sizing:border-box;flex-direction:row}.home-table.request-list .col-worker{width:16%}.home-table.request-list .col-content{width:18%}.home-table.request-list .col-description{width:26%;align-items:center;padding-right:8px;color:var(--color-text-secondary);font-size:var(--font-size-body-md);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal}.home-table.request-list .col-status,.home-table.request-list .col-time{width:14%}.home-table.request-list .col-actions-header,.home-table.request-list .col-actions{width:12%}.home-table .col-actions button{background:none;border:none;padding:0;font-family:var(--font-family-base);font-size:var(--font-size-body-sm);font-weight:600;cursor:pointer;transition:color .15s ease;white-space:nowrap}.accept-button{color:#16a34a}.accept-button:hover{color:#15803d}.reject-button{color:#ef4444}.reject-button:hover{color:#dc2626}.work-row{display:flex;align-items:center;width:100%;height:48px;border-bottom:1px solid #e5e7eb;font-size:var(--font-size-body-md);color:var(--color-text-primary);transition:background-color .2s ease}.work-row:hover{background-color:#f3f4f6}.work-row>div{display:flex;align-items:center;padding-left:clamp(8px,.9vw,12px);box-sizing:border-box}.col-status{width:12%;display:flex;align-items:center;justify-content:flex-start;padding-left:clamp(8px,.9vw,12px);box-sizing:border-box}.col-solution{width:15%;font-size:var(--font-size-body-md);color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.col-view{width:10%;display:flex;align-items:center;justify-content:center;padding-left:0}.view-button{padding:clamp(4px,.5vw,6px) clamp(10px,.8vw,12px);border:none;border-radius:8px;background-color:#3b4a6b;color:#fff;font-size:var(--font-size-body-sm);font-weight:500;cursor:pointer;transition:background-color .2s ease}.view-button:hover{background-color:#2f3b5a;color:#fff}.col-actions{width:20%;display:flex;align-items:center;gap:8px;justify-content:flex-start;padding-left:clamp(8px,.9vw,12px);box-sizing:border-box}.action-button{padding:clamp(4px,.5vw,5px) clamp(10px,1vw,14px);border:none;border-radius:clamp(4px,.5vw,6px);font-size:var(--font-size-body-md);font-weight:500;cursor:pointer;transition:background-color .2s ease}.complete-button{background-color:#3b4a6b;color:#fff}.complete-button:hover{background-color:#2d3a56}.cancel-button{background-color:#ef4444;color:#fff}.cancel-button:hover{background-color:#dc2626}.action-separator{color:var(--color-text-muted);font-size:var(--font-size-body-md);font-weight:400}.no-action{color:var(--color-text-muted);font-size:var(--font-size-body-md)}.col-status .status-badge{display:inline-block;border-radius:9999px;padding:clamp(5px,.6vw,7px) clamp(8px,.9vw,10px);font-size:var(--font-size-body-md);font-weight:700;line-height:1;min-width:clamp(45px,4.5vw,55px);text-align:center}.home-small{box-sizing:border-box;flex:1 1 clamp(140px,24%,200px);min-width:clamp(140px,14vw,200px);max-width:100%;min-height:clamp(130px,24vw,200px);height:auto;border-radius:clamp(8px,.8vw,12px);background-color:var(--color-surface-base);color:var(--color-text-primary);box-shadow:0 2px 4px #00000029;padding:clamp(12px,1.2vw,16px);display:flex;flex-direction:column;gap:clamp(6px,.8vw,10px)}.home-small-header{display:flex;justify-content:space-between;align-items:center}.title{font-family:var(--font-family-base);font-size:var(--font-size-title);font-weight:700;color:var(--color-text-primary)}.home-small-header{flex-shrink:0}.home-small-header img{width:clamp(11px,1vw,15px);height:clamp(11px,1vw,15px);filter:opacity(.95)}.status{font-family:var(--font-family-base);font-size:clamp(22px,1.5vw,32px);font-weight:700;color:var(--color-text-primary);margin-top:clamp(6px,.8vw,10px);align-self:flex-start}.content-wrapper{display:flex;justify-content:center;flex:1;align-items:center;min-height:clamp(80px,12vw,120px)}.content-text{font-size:clamp(22px,2.2vw,32px);font-weight:800;margin-top:0;color:var(--color-text-primary)}.semicircle-gauge-container{position:relative;width:clamp(95px,9vw,120px);height:clamp(95px,9vw,120px);min-width:95px;max-width:120px;min-height:95px;max-height:120px}.semicircle-gauge-value{position:absolute;top:55%;left:50%;transform:translate(-50%,-50%);color:var(--color-text-primary);font-weight:600;font-size:clamp(22px,2vw,32px)}.employee-page-wrapper{box-sizing:border-box;width:100%;height:100%;background-color:var(--color-surface-subtle);display:flex;flex-wrap:wrap;align-items:stretch;gap:clamp(10px,1vw,14px);padding:clamp(0px,1vw,2px);overflow:hidden;overflow-x:hidden;min-width:0}.employee-big{flex:1 1 clamp(380px,50%,620px);min-width:360px;max-width:100%;height:100%;border-radius:clamp(8px,.9vw,12px);background-color:var(--color-surface-base);color:var(--color-text-primary);box-shadow:0 2px 4px #00000040;display:flex;flex-direction:column;align-items:stretch;padding:clamp(16px,1.5vw,20px) clamp(14px,1.4vw,18px) clamp(14px,1.3vw,18px);box-sizing:border-box;min-height:0;overflow:hidden;flex-shrink:0}.employee-big-header{width:100%;display:flex;justify-content:flex-start;align-items:center;margin-bottom:clamp(8px,1vw,12px);box-sizing:border-box;flex-shrink:0}.employee-list{font-family:var(--font-family-base);font-size:var(--font-size-title);font-weight:800;color:var(--color-text-primary)}.search-bar{width:100%;height:clamp(34px,3.1vw,38px);border-radius:clamp(8px,.8vw,10px);border:1px solid #e5e7eb;margin-bottom:clamp(12px,1.4vw,16px);padding-left:clamp(10px,1vw,12px);font-size:var(--font-size-body-sm);color:var(--color-text-secondary);box-sizing:border-box;font-family:var(--font-family-base)}.search-bar::placeholder{color:var(--color-text-muted)}.employee-table{width:100%;display:flex;flex-direction:column;flex:1;min-height:0}.list-header{width:100%;height:clamp(40px,3.4vw,48px);display:flex;align-items:center;background-color:var(--color-surface-subtle);border-bottom:1px solid #e5e7eb;border-radius:clamp(6px,.6vw,8px) clamp(6px,.6vw,8px) 0 0;flex-shrink:0}.employee-table .list-header>div{font-family:var(--font-family-base);font-size:var(--font-size-body-md);font-weight:600;color:var(--color-text-secondary);display:flex;align-items:center;padding-left:clamp(10px,1vw,14px);box-sizing:border-box}.col-status{width:10%}.list-body{width:100%;flex:1;overflow-y:auto;display:flex;flex-direction:column;border-bottom-left-radius:clamp(6px,.6vw,8px);border-bottom-right-radius:clamp(6px,.6vw,8px);min-height:0}.list-body::-webkit-scrollbar{display:none}.no-access-box{text-align:center;margin-top:clamp(60px,7vw,80px);color:var(--color-text-secondary)}.no-access-title{font-weight:600;font-size:var(--font-size-body-lg);margin-bottom:clamp(5px,.7vw,7px);color:var(--color-text-primary)}.no-access-sub{font-size:var(--font-size-body-md);color:var(--color-text-secondary)}.employee-row{display:flex;align-items:center;width:100%;height:clamp(44px,3.6vw,52px);border-bottom:1px solid #e5e7eb;font-size:var(--font-size-body-md);color:var(--color-text-primary);transition:background-color .2s ease}.employee-row:hover{background-color:#f3f4f6}.employee-row>div{display:flex;align-items:center;padding-left:clamp(10px,1vw,14px);box-sizing:border-box}.col-name{width:14%}.col-phone{width:18%}.col-part{width:12%}.col-email{width:22%}.col-equipment{width:16%}.col-status{width:10%;display:flex;align-items:center;justify-content:flex-start;padding-left:16px;box-sizing:border-box}.col-status span{display:inline-block;border-radius:9999px;padding:clamp(6px,.7vw,8px) clamp(10px,.9vw,12px);font-size:var(--font-size-body-sm);font-weight:600;line-height:1}.col-view{width:8%;justify-content:center}.col-status span.online{background-color:#b6e7c8;color:#16a34a;font-weight:700}.col-status span.offline{background-color:#f4c0c0;color:#ef4444;font-weight:700}.view-btn{background-color:#3b4a6b;color:#fff;border:none;border-radius:8px;padding:clamp(4px,.5vw,6px) clamp(10px,.8vw,12px);font-size:var(--font-size-body-sm);cursor:pointer;transition:background-color .2s ease}.view-btn:hover{background-color:#2f3b5a}.detail-wrapper{box-sizing:border-box;flex:0 0 clamp(280px,32%,360px);min-width:260px;max-width:100%;height:100%;padding:clamp(18px,2vw,24px) clamp(16px,1.8vw,22px) clamp(48px,5.2vw,64px);border-radius:clamp(10px,1vw,14px);background-color:var(--color-surface-base);color:var(--color-text-primary);box-shadow:0 2px 6px #00000040;display:flex;flex-direction:column;align-items:center;position:relative;gap:clamp(12px,1.4vw,16px);min-height:0;overflow:hidden;flex-shrink:0}.detail-header{width:100%;text-align:left;font-family:var(--font-family-base);font-size:var(--font-size-title);font-weight:800;color:var(--color-text-primary);flex-shrink:0}.profile-section{display:flex;flex-direction:column;align-items:center;gap:2px}.profile-img{width:clamp(68px,6vw,84px);height:clamp(68px,6vw,84px);border-radius:50%;object-fit:cover;border:2px solid #e5e7eb;flex-shrink:0}.detail-title{font-family:var(--font-family-base);font-size:var(--font-size-heading-lg);font-weight:700;color:var(--color-text-primary);margin-bottom:clamp(4px,.6vw,6px);line-height:1.25;flex-shrink:0}.detail-email{font-size:var(--font-size-body-sm);color:var(--color-text-muted);margin-top:1px;flex-shrink:0}.detail-list{width:100%;display:flex;flex-direction:column;gap:clamp(9px,.9vw,12px);flex:1;min-height:0;overflow-y:auto;padding-bottom:clamp(48px,4.5vw,64px)}.detail-list::-webkit-scrollbar{display:none}.detail-item{display:flex;justify-content:space-between;font-size:var(--font-size-body-md);color:var(--color-text-secondary);flex-shrink:0}.detail-item dt{font-family:var(--font-family-base);color:var(--color-text-muted);font-weight:400;white-space:nowrap;font-size:var(--font-size-body-md)}.detail-item dd{margin:0;text-align:right;color:var(--color-text-primary);font-weight:600;font-size:var(--font-size-body-md)}.detail-status{display:inline-block;padding:5px 12px;border-radius:16px;font-size:clamp(11px,.85vw,12px);font-weight:600;background-color:#f4c0c0;color:#ef4444}.detail-status[data-online=true]{background-color:#b6e7c8;color:#22c55e}.connect-button{position:absolute;bottom:clamp(18px,2vw,24px);left:50%;transform:translate(-50%);width:calc(100% - clamp(36px,4.5vw,50px));height:clamp(34px,3.2vw,38px);border-radius:12px;background-color:#3b4a6b;color:#fff;font-size:var(--font-size-body-md);font-weight:800;transition:background-color .2s ease;cursor:pointer;border:none}.connect-button[data-status=pending]{background-color:#5c6587}.connect-button[data-status=pending]:hover{background-color:#4d5675}.connect-button[data-status=rejected]{background-color:#8b6385}.connect-button[data-status=rejected]:hover{background-color:#7a5676}.connect-button:hover{background-color:#2f3b5a}.equipment-assign-row{display:flex;width:100%;gap:clamp(8px,.8vw,12px);align-items:center}.equipment-assign-wrapper{position:relative;width:100%;margin-bottom:0;flex:1}.equipment-select-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:clamp(6px,.6vw,10px);padding:clamp(6px,.6vw,8px) clamp(11px,1.1vw,14px);border:none;border-radius:10px;background-color:#ecedf1;color:var(--color-text-primary);font-size:var(--font-size-body-sm);font-weight:500;cursor:pointer;transition:background-color .2s ease;font-family:var(--font-family-base);text-align:left}.equipment-select-trigger:after{content:"";width:12px;height:8px;background-image:url('data:image/svg+xml,%3Csvg width="12" height="8" viewBox="0 0 12 8" fill="none" xmlns="http://www.w3.org/2000/svg"%3E%3Cpath d="M1 1.5L6 6.5L11 1.5" stroke="%235C6478" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/%3E%3C/svg%3E');background-repeat:no-repeat;background-size:12px 8px;transition:transform .2s ease;flex-shrink:0}.equipment-select-trigger.open:after{transform:rotate(180deg)}.equipment-select-trigger:hover:not(:disabled),.equipment-select-trigger:focus:not(:disabled){background-color:#e0e3eb;outline:none}.equipment-select-trigger:disabled{opacity:.6;cursor:not-allowed;background-color:#f3f4f6}.equipment-select-dropdown{position:absolute;top:calc(100% + 8px);left:0;width:100%;margin:0;padding:8px 0;list-style:none;background-color:#fff;border-radius:12px;border:none;box-shadow:0 12px 32px #00000026;overflow:hidden;z-index:10;max-height:200px;overflow-y:auto}.equipment-select-dropdown::-webkit-scrollbar{width:6px}.equipment-select-dropdown::-webkit-scrollbar-track{background:transparent}.equipment-select-dropdown::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.equipment-select-dropdown::-webkit-scrollbar-thumb:hover{background:#9ca3af}.equipment-select-option{width:100%;padding:10px 16px;display:flex;flex-direction:column;align-items:flex-start;gap:4px;border:none;background-color:transparent;color:var(--color-text-primary);font-size:var(--font-size-body-md);text-align:left;cursor:pointer;font-family:var(--font-family-base)}li+li .equipment-select-option{border-top:1px solid #ecedf1}.equipment-select-option:hover{background-color:#f5f6fa}.equipment-select-option.selected{background-color:#ecedf1;font-weight:600}.equipment-select-option-title{font-size:var(--font-size-body-sm);font-weight:600;color:var(--color-text-primary)}.equipment-select-option-meta{font-size:var(--font-size-caption);color:var(--color-text-muted)}.equipment-assign-button{height:clamp(30px,2.8vw,34px);border-radius:10px;background-color:#3b4a6b;color:#fff;font-size:var(--font-size-body-sm);font-weight:600;cursor:pointer;transition:background-color .2s ease;font-family:var(--font-family-base);border:none;box-sizing:border-box;padding:0 clamp(11px,1.06vw,13px);flex:0 0 auto}.equipment-assign-button:hover:not(:disabled){background-color:#2d3a56}.equipment-assign-button:disabled{opacity:.6;cursor:not-allowed}.detail-item:has(.equipment-assign-row){align-items:center;gap:16px}.detail-item:has(.equipment-assign-row) dt{flex:0 0 auto;min-width:72px;text-align:left}.detail-item:has(.equipment-assign-row) dd{width:100%;text-align:left}.connection-pending-modal{width:420px;padding:36px 32px 32px;background-color:var(--color-surface-base);border-radius:18px;box-shadow:0 12px 32px #212c4438;display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center;color:var(--color-text-primary)}.connection-pending-spinner{width:56px;height:56px;border-radius:50%;border:4px solid #dde2f1;border-top-color:#3b4a6b;animation:pending-spin 1s linear infinite}.connection-pending-title{font-size:var(--font-size-heading-md);font-weight:700;color:var(--color-text-primary);margin:0}.connection-pending-sub{margin:0;font-size:var(--font-size-body-sm);line-height:1.6;color:var(--color-text-secondary)}.connection-pending-info{width:100%;padding:16px;border-radius:14px;background-color:#f5f6fa;display:flex;flex-direction:column;gap:12px}.connection-pending-row{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:var(--font-size-body-sm)}.connection-pending-label{color:var(--color-text-muted);font-weight:500}.connection-pending-value{color:var(--color-text-primary);font-weight:600}.connection-pending-timer{font-family:var(--font-family-base);font-weight:700;font-size:var(--font-size-heading-sm);color:var(--color-text-primary)}.connection-pending-request{width:100%;text-align:left;border-radius:14px;background-color:#f9fafc;border:1px solid #e3e7f2;padding:16px}.connection-pending-request .connection-pending-label{display:block;font-size:13px;font-weight:500;color:var(--color-text-muted);margin-bottom:8px}.connection-pending-request-text{margin:10px 0 0;font-size:var(--font-size-body-sm);line-height:1.5;color:var(--color-text-primary);white-space:pre-wrap}.connection-pending-close{width:100%;height:42px;border-radius:14px;border:none;background-color:#3b4a6b;color:#fff;font-size:var(--font-size-body-lg);font-weight:700;cursor:pointer;transition:background-color .2s ease}.connection-pending-close:hover{background-color:#2f3b5a}.connection-rejected-modal{width:420px;padding:40px 36px 32px;background-color:var(--color-surface-base);border-radius:18px;box-shadow:0 12px 32px #39273638;display:flex;flex-direction:column;align-items:center;gap:24px;text-align:center;color:var(--color-text-primary)}.connection-rejected-modal[data-cancel-reason=timeout]{box-shadow:0 12px 32px #d9770626}.connection-rejected-icon{width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,#f1d4db,#f5bfcf);position:relative}.connection-rejected-modal[data-cancel-reason=timeout] .connection-rejected-icon{background:linear-gradient(135deg,#fde68a,#fcd34d)}.connection-rejected-icon:before,.connection-rejected-icon:after{content:"";position:absolute;top:50%;left:50%;width:28px;height:4px;background-color:#c63654;border-radius:4px;transform-origin:center}.connection-rejected-icon:before{transform:translate(-50%,-50%) rotate(45deg)}.connection-rejected-icon:after{transform:translate(-50%,-50%) rotate(-45deg)}.connection-rejected-modal[data-cancel-reason=timeout] .connection-rejected-icon:before{width:3px;height:18px;background-color:#d97706;border-radius:2px;transform:translate(-50%,-50%) translateY(-6px)}.connection-rejected-modal[data-cancel-reason=timeout] .connection-rejected-icon:after{width:14px;height:3px;background-color:#d97706;border-radius:2px;transform:translate(-50%,-50%) translate(2px)}.connection-rejected-title{font-size:var(--font-size-heading-lg);font-weight:700;color:var(--color-text-primary);margin:0;line-height:1.4}.connection-rejected-sub{margin:0;font-size:var(--font-size-body-md);line-height:1.6;color:var(--color-text-secondary);white-space:normal}.connection-rejected-request{width:100%;text-align:left;border-radius:14px;background-color:#fdf4f6;border:1px solid #f5d6de;padding:16px}.connection-rejected-modal[data-cancel-reason=timeout] .connection-rejected-request{background-color:#fffbeb;border:1px solid #fde68a}.connection-rejected-label{display:block;font-size:13px;font-weight:600;color:#c63654;margin-bottom:8px}.connection-rejected-modal[data-cancel-reason=timeout] .connection-rejected-label{color:#d97706}.connection-rejected-request-text{margin:0;font-size:var(--font-size-body-md);line-height:1.5;color:var(--color-text-primary);white-space:pre-wrap;font-weight:600}.connection-rejected-close{width:100%;height:42px;border-radius:14px;border:none;background-color:#3b4a6b;color:#fff;font-size:var(--font-size-body-lg);font-weight:700;cursor:pointer;transition:background-color .2s ease}.connection-rejected-close:hover{background-color:#2f3b5a}@keyframes pending-spin{to{transform:rotate(360deg)}}.detail-empty{font-size:var(--font-size-body-lg);color:var(--color-text-muted)}.work-add{width:100%;flex:0 1 58%;min-height:0;border-radius:16px;padding:16px;background-color:var(--color-surface-base);box-shadow:0 2px 4px #00000029;display:flex;flex-direction:column;font-family:var(--font-family-base);box-sizing:border-box;color:var(--color-text-primary);gap:12px;overflow:hidden;font-size:var(--font-size-body-sm)}.work-add-body{flex:1 1 auto;min-height:0;overflow-y:hidden;display:flex;flex-direction:column;gap:0}.work-add-body.scrollable{overflow-y:auto}.work-add-body.scrollable::-webkit-scrollbar{width:0px;display:none}.modal-content .work-add{width:100%;height:auto;padding:0;background-color:transparent;box-shadow:none;border-radius:0;flex:none;min-height:auto;overflow:visible}.modal-content .work-add .work-add-body{overflow:visible}.modal-content .work-add .work-add-body.scrollable{overflow-y:auto}.work-add-header{display:flex;justify-content:space-between;align-items:center;font-size:var(--font-size-title);font-weight:700;color:var(--color-text-primary);margin-bottom:12px}.request-header{box-sizing:border-box;width:100%;height:auto;display:flex;align-items:center;justify-content:flex-start;font-size:var(--font-size-body-md);font-weight:500;color:var(--color-text-primary);margin:0}.request-body{box-sizing:border-box;width:100%;min-height:40px;border-radius:10px;border:none;background-color:#ecedf1;padding:8px 12px;font-family:var(--font-family-base);font-size:var(--font-size-body-sm);font-weight:400;color:var(--color-text-primary);resize:vertical}.request-body:focus{outline:none}.request-body::placeholder{font-family:var(--font-family-base);font-size:var(--font-size-body-sm);font-weight:400}.add-button{width:100%;height:clamp(30px,2.5vw,34px);min-height:0;max-height:none;margin-top:8px;padding:0;border-radius:10px;background-color:#3b4a6b;color:#fff;font-size:var(--font-size-body-xs);font-weight:600;line-height:1;cursor:pointer;transition:background-color .2s ease;font-family:var(--font-family-base);border:none;box-sizing:border-box;display:flex;align-items:center;justify-content:center}.add-button:hover:not(:disabled){background-color:#2d3a56}.add-button:disabled{opacity:.6;cursor:not-allowed}.work-add .assign-header{box-sizing:border-box;width:100%;height:auto;display:flex;align-items:center;justify-content:flex-start;font-size:var(--font-size-body-xs);font-weight:500;color:var(--color-text-primary);margin:0 0 6px}.work-add .assign-header:first-of-type{margin-top:0}.work-add .work-select-wrapper{position:relative;margin-top:6px;margin-bottom:12px}.work-add .work-select-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 16px 8px 12px;border:none;border-radius:12px;background-color:#ecedf1;color:var(--color-text-primary);font-size:var(--font-size-body-xs);font-weight:500;cursor:pointer;transition:background-color .2s ease;font-family:var(--font-family-base)}.work-add .work-select-trigger:after{content:"";width:12px;height:8px;background-image:url('data:image/svg+xml,%3Csvg width="12" height="8" viewBox="0 0 12 8" fill="none" xmlns="http://www.w3.org/2000/svg"%3E%3Cpath d="M1 1.5L6 6.5L11 1.5" stroke="%235C6478" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/%3E%3C/svg%3E');background-repeat:no-repeat;background-size:12px 8px;transition:transform .2s ease}.work-add .work-select-trigger.open:after{transform:rotate(180deg)}.work-add .work-select-trigger:hover:not(:disabled),.work-add .work-select-trigger:focus:not(:disabled){background-color:#e0e3eb;outline:none}.work-add .work-select-trigger:disabled{opacity:.6;cursor:not-allowed;background-color:#f3f4f6}.work-add .work-select-dropdown{position:absolute;top:calc(100% + 8px);left:0;width:100%;margin:0;padding:8px 0;list-style:none;background-color:#fff;border-radius:6px;border:none;box-shadow:0 12px 32px #00000026;overflow:hidden;z-index:10;max-height:200px;overflow-y:auto}.work-add .work-select-dropdown::-webkit-scrollbar{width:0px;display:none}.work-add .work-select-option{width:100%;padding:10px 14px;display:flex;flex-direction:column;align-items:flex-start;gap:4px;border:none;background-color:transparent;color:var(--color-text-primary);font-size:var(--font-size-body-xs);text-align:left;cursor:pointer;font-family:var(--font-family-base)}.work-add li+li .work-select-option{border-top:1px solid #ecedf1}.work-add .work-select-option:hover{background-color:#f5f6fa}.work-add .work-select-option.selected{background-color:#ecedf1;font-weight:600}.work-add .work-select-option-title{font-weight:600;font-size:var(--font-size-body-xs)}.work-add .work-select-option-meta{font-size:var(--font-size-caption);color:var(--color-text-muted)}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0000004d;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;border-radius:12px;width:400px;max-width:90vw;padding:24px;box-shadow:0 4px 20px #0003;animation:fadeIn .25s ease}.modal-content.modal-content--compact{width:auto;max-width:none;padding:0;background:transparent;box-shadow:none}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.work-page-wrapper{box-sizing:border-box;width:100%;height:100%;background-color:var(--color-surface-subtle);display:flex;align-items:stretch;justify-content:space-between;gap:clamp(8px,.8vw,12px);padding:clamp(0px,1vw,2px);overflow:hidden;overflow-x:hidden;min-width:0}.work-page-wrapper>.work-big{flex:1 1 clamp(420px,65%,760px);min-width:clamp(360px,56%,720px);max-width:100%}.work-page-right{flex:0 0 clamp(300px,32%,380px);display:flex;flex-direction:column;align-items:stretch;min-width:clamp(280px,30%,380px);height:100%}.work-page-right--admin{gap:clamp(6px,.6vw,10px)}.work-page-right--worker{gap:0}.work-page-stack{flex:1 1 auto;display:flex;flex-direction:column;align-items:stretch;gap:clamp(6px,.6vw,10px);height:100%}.work-page-right--worker .detail-wrapper{flex:1 1 auto;min-width:0;width:100%;max-width:100%;padding:clamp(14px,1.2vw,18px)}.work-page-right--worker .detail-list{padding-bottom:clamp(20px,1.8vw,28px)}.work-big{flex:1 1 clamp(380px,50%,620px);min-width:360px;max-width:100%;height:100%;border-radius:clamp(8px,.9vw,12px);background-color:var(--color-surface-base);color:var(--color-text-primary);box-shadow:0 2px 4px #00000040;display:flex;flex-direction:column;align-items:flex-start;padding:clamp(16px,1.5vw,20px) clamp(14px,1.4vw,18px) clamp(14px,1.3vw,18px);box-sizing:border-box;min-height:0;overflow:hidden;flex-shrink:0}.work-big-header{width:100%;display:flex;justify-content:flex-start;align-items:center;margin-bottom:clamp(8px,1vw,12px);padding-left:0;box-sizing:border-box;flex-shrink:0}.work-list{font-family:var(--font-family-base);font-size:var(--font-size-title);font-weight:800;color:var(--color-text-primary);padding-left:0;box-sizing:border-box}.work-table{width:100%;display:flex;flex-direction:column;flex:1;min-height:0}.work-table .list-header{width:100%;height:clamp(40px,3.5vw,48px);display:flex;align-items:center;background-color:var(--color-surface-subtle);border-bottom:1px solid #e5e7eb;border-radius:clamp(6px,.6vw,8px) clamp(6px,.6vw,8px) 0 0;flex-shrink:0}.work-table .list-header>div{font-family:var(--font-family-base);font-size:var(--font-size-body-md);font-weight:600;color:var(--color-text-secondary);display:flex;align-items:center;padding-left:clamp(8px,.9vw,12px);box-sizing:border-box}.col-worker{width:15%}.col-content{width:30%}.col-status{width:12%}.col-time{width:13%}.col-solution{width:20%;font-size:var(--font-size-body-md);color:var(--color-text-secondary)}.col-actions-header{width:20%;font-size:var(--font-size-body-lg);font-weight:600;color:var(--color-text-secondary)}.work-table .list-body{width:100%;flex:1;overflow-y:auto;display:block;flex-direction:column;border-bottom-left-radius:clamp(6px,.8vw,8px);border-bottom-right-radius:clamp(6px,.8vw,8px);min-height:0}.work-table .list-body::-webkit-scrollbar{display:none}.loading-text,.no-data{text-align:center;padding:clamp(22px,2.8vw,30px) 0;font-family:var(--font-family-base);font-size:var(--font-size-body-md);color:var(--color-text-muted)}.loading-text{color:var(--color-text-secondary);font-weight:500}.work-filter-tabs{display:flex;align-items:center;gap:8px;margin:10px 0 12px;padding:0 2px;flex-wrap:wrap}.work-filter-tabs button{border:1px solid #d1d5db;background-color:#f8fafc;color:#334155;border-radius:8px;padding:6px 12px;font-weight:600;font-size:var(--font-size-body-md);cursor:pointer;transition:all .2s ease;line-height:1;box-shadow:none}.work-filter-tabs button:hover{background-color:#f1f5f9;border-color:#cbd5e1}.work-filter-tabs button.active{background-color:#3b4a6b;color:#fff;border-color:#3b4a6b;box-shadow:inset 0 0 0 1px #ffffff26}.work-filter-tabs button:active{transform:scale(.98)}.work-action-modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.work-action-modal{background:var(--color-surface-base);border-radius:12px;width:90%;max-width:500px;box-shadow:0 4px 20px #00000026;color:var(--color-text-primary)}.work-action-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e5e7eb}.work-action-modal-header h3{margin:0;font-size:var(--font-size-heading-md);font-weight:600;color:var(--color-text-primary)}.close-button{background:none;border:none;font-size:24px;color:var(--color-text-muted);cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s}.close-button:hover{background-color:#f3f4f6}.work-action-modal-body{padding:24px}.work-action-modal-body label{display:block;font-size:var(--font-size-body-md);font-weight:500;color:var(--color-text-secondary);margin-bottom:8px}.work-action-modal-body textarea{width:100%;padding:12px;border:1px solid #d1d5db;border-radius:8px;font-size:var(--font-size-body-md);font-family:var(--font-family-base);resize:vertical;box-sizing:border-box;transition:border-color .2s}.work-action-modal-body textarea:focus{outline:none;border-color:#3b82f6}.work-action-modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:20px 24px;border-top:1px solid #e5e7eb}.work-action-modal-footer button{padding:10px 20px;border:none;border-radius:8px;font-size:var(--font-size-body-md);font-weight:500;cursor:pointer;transition:all .2s}.cancel-button{background-color:#f3f4f6;color:var(--color-text-secondary)}.cancel-button:hover:not(:disabled){background-color:#e5e7eb}.submit-button{color:#fff}.submit-button.complete{background-color:#3b4a6b}.submit-button.complete:hover:not(:disabled){background-color:#2f3b5a}.submit-button.cancel{background-color:#ef4444}.submit-button.cancel:hover:not(:disabled){background-color:#dc2626}.work-action-modal-footer button:disabled{opacity:.6;cursor:not-allowed}.work-detail-modal{width:clamp(320px,30vw,420px);padding:clamp(24px,2.8vw,32px);background:var(--color-surface-base);border-radius:16px;box-shadow:0 16px 40px #19213d1f;display:flex;flex-direction:column;gap:clamp(16px,1.8vw,20px);color:var(--color-text-primary);font-family:var(--font-family-base)}.work-detail-modal__title{margin:0;font-size:var(--font-size-heading-md);font-weight:700;color:var(--color-text-primary)}.work-detail-modal__body{display:flex;flex-direction:column;gap:clamp(12px,1.2vw,16px)}.work-detail-modal__row{display:flex;justify-content:space-between;align-items:flex-start;gap:clamp(12px,1.2vw,16px)}.work-detail-modal__label{flex:0 0 auto;min-width:88px;font-size:var(--font-size-body-sm);font-weight:500;color:var(--color-text-muted)}.work-detail-modal__value{flex:1;font-size:var(--font-size-body-md);font-weight:600;color:var(--color-text-primary);text-align:right}.work-detail-modal__solution{display:flex;flex-direction:column;gap:clamp(6px,.7vw,8px)}.work-detail-modal__solution-text{margin:0;padding:clamp(12px,1.2vw,16px);border-radius:12px;background-color:#f5f6fa;border:1px solid #e3e7f2;font-size:var(--font-size-body-md);color:var(--color-text-primary);line-height:1.55;white-space:pre-wrap}.work-detail-modal__close{align-self:stretch;height:clamp(36px,3vw,40px);border-radius:12px;border:none;background-color:#3b4a6b;color:#fff;font-size:var(--font-size-body-md);font-weight:600;cursor:pointer;transition:background-color .2s ease}.work-detail-modal__close:hover{background-color:#2f3b5a}.work-assign{width:100%;flex:0 1 42%;min-height:0;border-radius:16px;padding:16px;background-color:var(--color-surface-base);box-shadow:0 2px 4px #00000029;display:flex;flex-direction:column;font-family:var(--font-family-base);box-sizing:border-box;color:var(--color-text-primary);gap:12px;overflow:hidden;font-size:var(--font-size-body-sm)}.work-assign-body{flex:1 1 auto;min-height:0;overflow-y:hidden;display:flex;flex-direction:column;gap:0}.work-assign-body.scrollable{overflow-y:auto}.work-assign-body.scrollable::-webkit-scrollbar{width:0px;display:none}.work-assign-header{display:flex;justify-content:space-between;align-items:center;font-size:var(--font-size-title);font-weight:700;color:var(--color-text-primary);margin-bottom:12px}.work-assign .assign-header{box-sizing:border-box;width:100%;height:auto;display:flex;align-items:center;justify-content:flex-start;font-size:var(--font-size-body-xs);font-weight:500;color:var(--color-text-primary);margin:0 0 6px}.work-assign .assign-header:first-of-type{margin-top:0}.work-assign .work-select-wrapper{position:relative;margin-top:6px;margin-bottom:6px}.work-assign .work-select-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 16px 8px 12px;border:none;border-radius:12px;background-color:#ecedf1;color:var(--color-text-primary);font-size:var(--font-size-body-xs);font-weight:500;cursor:pointer;transition:background-color .2s ease;font-family:var(--font-family-base)}.work-assign .work-select-trigger>span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}.work-assign .work-select-trigger:after{content:"";width:12px;height:8px;background-image:url('data:image/svg+xml,%3Csvg width="12" height="8" viewBox="0 0 12 8" fill="none" xmlns="http://www.w3.org/2000/svg"%3E%3Cpath d="M1 1.5L6 6.5L11 1.5" stroke="%235C6478" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/%3E%3C/svg%3E');background-repeat:no-repeat;background-size:12px 8px;transition:transform .2s ease}.work-assign .work-select-trigger.open:after{transform:rotate(180deg)}.work-assign .work-select-trigger:hover,.work-assign .work-select-trigger:focus{background-color:#e0e3eb;outline:none}.work-assign .work-select-dropdown{position:absolute;top:calc(100% + 8px);left:0;width:100%;margin:0;padding:8px 0;list-style:none;background-color:#fff;border-radius:6px;border:none;box-shadow:0 12px 32px #00000026;overflow:hidden;z-index:10;max-height:200px;overflow-y:auto}.work-assign .work-select-dropdown::-webkit-scrollbar{width:0px;display:none}.work-assign .work-select-option{width:100%;padding:10px 14px;display:flex;flex-direction:column;align-items:flex-start;gap:4px;border:none;background-color:transparent;color:var(--color-text-primary);font-size:var(--font-size-body-xs);text-align:left;cursor:pointer;font-family:var(--font-family-base)}.work-assign li+li .work-select-option{border-top:1px solid #ecedf1}.work-assign .work-select-option:hover{background-color:#f5f6fa}.work-assign .work-select-option.selected{background-color:#ecedf1;font-weight:600}.work-assign .work-select-option-title{font-weight:600;word-break:break-word;line-height:1.4;font-size:var(--font-size-body-xs)}.work-assign .work-select-option-meta{font-size:var(--font-size-caption);color:var(--color-text-muted)}.work-assign .empty-option{padding:10px;text-align:center;color:#9ca3af;font-size:var(--font-size-body-xs);line-height:1.4}.work-assign .assign-button{width:100%;height:clamp(30px,2.2vw,34px);min-height:0;max-height:none;margin-top:8px;margin-bottom:0;padding:0;border-radius:10px;background-color:#3b4a6b;color:#fff;font-size:var(--font-size-body-xs);font-weight:600;line-height:1;cursor:pointer;transition:background-color .2s ease;font-family:var(--font-family-base);border:none;box-sizing:border-box;display:flex;align-items:center;justify-content:center}.work-assign .assign-button:hover:not(:disabled){background-color:#2d3a56}.work-assign .assign-button:disabled{opacity:.6;cursor:not-allowed}.work-detail-wrapper{flex:1 1 auto;width:100%;min-width:0;height:100%;border-radius:16px;padding:clamp(14px,1.2vw,18px);background-color:var(--color-surface-base);box-shadow:0 2px 4px #0003;display:flex;flex-direction:column;box-sizing:border-box;color:var(--color-text-primary)}.work-detail-header{font-family:var(--font-family-base);font-size:var(--font-size-heading-md);font-weight:800;color:var(--color-text-primary);margin-bottom:clamp(12px,1vw,16px)}.work-detail-empty{font-family:var(--font-family-base);font-size:var(--font-size-body-lg);color:var(--color-text-muted);text-align:center;margin-top:clamp(40px,6vw,80px)}.work-detail-list{display:flex;flex-direction:column;gap:clamp(12px,1vw,16px);flex:1 1 auto;margin:0;padding:0;overflow-y:auto}.work-detail-item{display:flex;flex-direction:column;gap:8px}.work-detail-item dt{font-family:var(--font-family-base);font-size:var(--font-size-body-md);font-weight:600;color:var(--color-text-muted)}.work-detail-item dd{font-family:var(--font-family-base);font-size:var(--font-size-body-lg);font-weight:400;color:var(--color-text-primary);margin:0;word-break:break-word}.work-detail-status{display:inline-block;padding:4px 12px;border-radius:12px;font-size:var(--font-size-body-md);font-weight:600;background-color:#f3f4f6;color:var(--color-text-secondary)}.work-detail-connect-button{width:100%;height:48px;background-color:#3b82f6;color:#fff;border:none;border-radius:8px;font-family:var(--font-family-base);font-size:var(--font-size-body-lg);font-weight:600;cursor:pointer;margin-top:auto;transition:background-color .2s}.work-detail-connect-button:hover{background-color:#2563eb}.work-detail-connect-button:active{background-color:#1d4ed8}.equipment-page-wrapper{box-sizing:border-box;width:100%;background-color:var(--color-surface-subtle);display:flex;flex-direction:column;align-items:stretch;gap:clamp(10px,1vw,14px);padding:clamp(0px,1vw,2px);overflow:hidden;overflow-x:hidden;min-width:0}.equipment-component-wrapper{display:flex;flex-wrap:wrap;align-items:flex-start;gap:clamp(10px,1vw,14px);width:100%;height:100%;box-sizing:border-box;min-height:0;min-width:0}.equipment-page-wrapper.empty{justify-content:center;align-items:center}.equipment-access-card{width:clamp(280px,32vw,360px);padding:clamp(24px,3vw,32px) clamp(22px,2.6vw,28px);border-radius:20px;background-color:var(--color-surface-base);box-shadow:0 16px 40px #19213d1f;display:flex;flex-direction:column;align-items:center;gap:clamp(16px,2.2vw,22px);text-align:center;color:var(--color-text-primary)}.equipment-access-title{margin:0;font-size:var(--font-size-heading-md);font-weight:700;color:var(--color-text-primary)}.equipment-access-sub{margin:0;font-size:var(--font-size-body-md);color:var(--color-text-secondary);line-height:1.65}.equipment-category-section{flex:0 0 auto;width:380px;height:100%;border-radius:16px;padding:25px;background-color:var(--color-surface-base);box-shadow:0 2px 4px #00000040;display:flex;flex-direction:column;font-family:var(--font-family-base);box-sizing:border-box;overflow:hidden;color:var(--color-text-primary)}.section-header{font-size:var(--font-size-title);font-weight:800;color:var(--color-text-primary);margin-bottom:20px}.category-add-form{display:flex;gap:12px;margin-bottom:20px}.category-input{flex:1;height:40px;padding:0 16px;border-radius:16px;border:none;background-color:#ecedf1;font-size:var(--font-size-body-sm);font-weight:500;color:var(--color-text-primary);font-family:var(--font-family-base)}.category-input::placeholder{color:var(--color-text-muted)}.category-add-button{width:80px;height:40px;border-radius:16px;border:none;background-color:#3b4a6b;color:#fff;font-size:var(--font-size-body-md);font-weight:500;cursor:pointer;transition:background-color .2s ease;font-family:var(--font-family-base)}.category-add-button:hover:not(:disabled){background-color:#2d3a56}.category-add-button:disabled{opacity:.6;cursor:not-allowed}.category-list{display:flex;flex-direction:column;gap:8px;flex:1;min-height:200px;max-height:600px;overflow-y:auto;overflow-x:hidden;flex-shrink:0}.category-list::-webkit-scrollbar{width:6px}.category-list::-webkit-scrollbar-track{background:transparent}.category-list::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.category-list::-webkit-scrollbar-thumb:hover{background:#9ca3af}.category-item{padding:12px 16px;border-radius:12px;background-color:#f9fafb;font-size:var(--font-size-body-sm);font-weight:600;color:var(--color-text-primary)}.empty-message{padding:20px;text-align:center;color:var(--color-text-muted);font-size:var(--font-size-body-md)}.equipment-register-section{flex:1;height:100%;border-radius:16px;padding:25px;background-color:var(--color-surface-base);box-shadow:0 2px 4px #00000040;display:flex;flex-direction:column;font-family:var(--font-family-base);box-sizing:border-box;min-width:0;overflow:hidden;color:var(--color-text-primary)}.work-select-wrapper{position:relative;margin-top:8px;margin-bottom:16px}.work-select-trigger:after{content:"";width:12px;height:8px;background-image:url('data:image/svg+xml,%3Csvg width="12" height="8" viewBox="0 0 12 8" fill="none" xmlns="http://www.w3.org/2000/svg"%3E%3Cpath d="M1 1.5L6 6.5L11 1.5" stroke="%235C6478" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/%3E%3C/svg%3E');background-repeat:no-repeat;background-size:12px 8px;transition:transform .2s ease}.work-select-option{width:100%;padding:12px 16px;display:flex;flex-direction:column;align-items:flex-start;gap:4px;border:none;background-color:transparent;color:var(--color-text-primary);font-size:var(--font-size-body-sm);text-align:left;cursor:pointer;font-family:var(--font-family-base)}.work-select-option-title{font-weight:600;font-size:var(--font-size-body-sm)}.register-form{margin-bottom:10px;padding-bottom:24px;border-bottom:2px solid #e5e7eb}.form-label{font-size:var(--font-size-body-xs);font-weight:500;color:var(--color-text-primary);margin-bottom:8px;margin-top:16px}.equipment-name-input{width:100%;height:40px;padding:0 16px;border-radius:16px;border:none;background-color:#ecedf1;font-size:var(--font-size-body-sm);font-weight:500;color:var(--color-text-primary);font-family:var(--font-family-base)}.equipment-name-input::placeholder{color:var(--color-text-muted)}.register-button{width:100%;height:40px;margin-top:16px;border-radius:16px;border:none;background-color:#3b4a6b;color:#fff;font-size:var(--font-size-body-md);font-weight:500;cursor:pointer;transition:background-color .2s ease;font-family:var(--font-family-base)}.register-button:hover:not(:disabled){background-color:#2d3a56}.register-button:disabled{opacity:.6;cursor:not-allowed}.equipment-list{margin-top:0;padding-top:0;display:flex;flex-direction:column;flex:1;min-height:0}.equipment-list .list-header{font-size:var(--font-size-body-lg);font-weight:600;color:var(--color-text-primary);margin-bottom:16px;flex-shrink:0;background-color:transparent;padding:0}.equipment-list .list-body{display:flex;flex-direction:column;gap:8px;flex:1;min-height:200px;max-height:400px;overflow-y:auto;overflow-x:hidden;flex-shrink:0;width:100%}.equipment-list .list-body::-webkit-scrollbar{width:6px}.equipment-list .list-body::-webkit-scrollbar-track{background:transparent}.equipment-list .list-body::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.equipment-list .list-body::-webkit-scrollbar-thumb:hover{background:#9ca3af}.equipment-list .equipment-item{padding:10px 14px;border-radius:12px;background-color:#f9fafb;display:flex;justify-content:space-between;align-items:center;transition:background-color .15s ease;width:100%;box-sizing:border-box;flex-shrink:0;border:1px solid transparent}.equipment-list .equipment-item:hover{background-color:#f3f4f6;border-color:#e5e7eb}.equipment-list .equipment-name{font-size:var(--font-size-body-sm);font-weight:600;color:var(--color-text-primary);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.equipment-list .equipment-category{font-size:var(--font-size-caption);color:var(--color-text-muted);padding:4px 12px;border-radius:8px;background-color:#ecedf1;margin-left:12px;flex-shrink:0;display:inline-block;white-space:nowrap}.company-equipment-section{flex:1;height:100%;border-radius:16px;padding:25px;background-color:var(--color-surface-base);box-shadow:0 2px 4px #00000040;display:flex;flex-direction:column;font-family:var(--font-family-base);box-sizing:border-box;min-width:0;overflow:hidden;color:var(--color-text-primary)}.work-select-wrapper{position:relative;margin-top:8px}.work-select-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px 12px 16px;border:none;border-radius:16px;background-color:#ecedf1;color:var(--color-text-primary);font-size:var(--font-size-body-sm);font-weight:500;cursor:pointer;transition:background-color .2s ease;font-family:var(--font-family-base)}.work-select-trigger:after{content:"";width:12px;height:8px;background-image:url('data:image/svg+xml,%3Csvg width="12" height="8" viewBox="0 0 12 8" fill="none" xmlns="http://www.w3.org/2000/svg"%3E%3Cpath d="M1 1.5L6 6.5L11 1.5" stroke="%235C6478" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/%3E%3C/svg%3E');background-repeat:no-repeat;background-size:12px 8px;transition:transform .2s ease}.work-select-trigger.open:after{transform:rotate(180deg)}.work-select-trigger:hover,.work-select-trigger:focus{background-color:#e0e3eb;outline:none}.work-select-dropdown{position:absolute;top:calc(100% + 8px);left:0;width:100%;margin:0;padding:8px 0;list-style:none;background-color:#fff;border-radius:16px;border:none;box-shadow:0 12px 32px #00000026;overflow:hidden;z-index:10;max-height:200px;overflow-y:auto}.work-select-dropdown::-webkit-scrollbar{width:0px;display:none}.work-select-option{width:100%;padding:12px 16px;display:flex;flex-direction:column;align-items:flex-start;gap:4px;border:none;background-color:transparent;color:var(--color-text-primary);font-size:var(--font-size-body-md);text-align:left;cursor:pointer;font-family:var(--font-family-base)}li+li .work-select-option{border-top:1px solid #ecedf1}.work-select-option:hover{background-color:#f5f6fa}.work-select-option.selected{background-color:#ecedf1;font-weight:600}.work-select-option-title{font-weight:600;font-size:var(--font-size-body-md)}.work-select-option-meta{font-size:var(--font-size-caption);color:var(--color-text-muted)}.assign-form{margin-bottom:10px;padding-bottom:24px;border-bottom:2px solid #e5e7eb}.form-label{font-size:var(--font-size-body-lg);font-weight:500;color:var(--color-text-primary);margin-bottom:8px;margin-top:16px}.form-label:first-child{margin-top:0}.assign-button{width:100%;height:40px;margin-top:16px;border-radius:16px;border:none;background-color:#3b4a6b;color:#fff;font-size:var(--font-size-body-md);font-weight:500;cursor:pointer;transition:background-color .2s ease;font-family:var(--font-family-base)}.assign-button:hover:not(:disabled){background-color:#2d3a56}.assign-button:disabled{opacity:.6;cursor:not-allowed}.company-equipment-list{margin-top:0;padding-top:0;display:flex;flex-direction:column;flex:1;min-height:0}.company-equipment-list .list-header{font-size:var(--font-size-body-lg);font-weight:600;color:var(--color-text-primary);margin-bottom:16px;flex-shrink:0;background-color:transparent;padding:0}.company-equipment-list .list-body{display:flex;flex-direction:column;gap:8px;flex:1;min-height:300px;max-height:500px;overflow-y:auto;overflow-x:hidden;flex-shrink:0;width:100%}.company-equipment-list .list-body::-webkit-scrollbar{width:6px}.company-equipment-list .list-body::-webkit-scrollbar-track{background:transparent}.company-equipment-list .list-body::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.company-equipment-list .list-body::-webkit-scrollbar-thumb:hover{background:#9ca3af}.company-equipment-list .equipment-item{padding:12px 16px;border-radius:12px;background-color:#f9fafb;display:flex;justify-content:space-between;align-items:center;transition:background-color .15s ease;width:100%;box-sizing:border-box;flex-shrink:0}.company-equipment-list .equipment-item:hover{background-color:#f3f4f6}.company-equipment-list .equipment-name{font-size:var(--font-size-body-sm);font-weight:600;color:var(--color-text-primary);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.company-equipment-list .equipment-category{font-size:var(--font-size-caption);color:var(--color-text-muted);padding:4px 12px;border-radius:8px;background-color:#ecedf1;margin-left:12px;flex-shrink:0}.video-frame{flex:7 1 0;min-width:400px;max-width:100%;height:100%;background-color:var(--color-surface-base);border-radius:clamp(8px,.9vw,12px);box-shadow:0 2px 4px #00000040;display:flex;flex-direction:column;justify-content:center;align-items:center;overflow:hidden;box-sizing:border-box;position:relative;padding-top:clamp(4px,.4vw,6px);padding-left:clamp(4px,.4vw,6px);padding-right:clamp(4px,.4vw,6px);padding-bottom:clamp(46px,3.2vw,52px);min-height:0;flex-shrink:0}.video-canvas-wrap{width:calc(100% - clamp(8px,.6vw,12px));height:calc(100% - clamp(8px,.6vw,16px));margin-top:0;margin-bottom:0;display:flex;justify-content:center;align-items:center;position:relative;overflow:hidden;border-radius:clamp(12px,1.2vw,16px);box-sizing:border-box}.control-bar-wrap{position:absolute;bottom:0;width:100%}.video-canvas{position:relative;width:100%;height:100%;background-color:#333;border-radius:clamp(12px,1.2vw,16px);overflow:hidden}.video-canvas-inner{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1}.video-canvas-image{width:100%;height:100%;object-fit:contain}.video-canvas-waiting{color:#fff;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:clamp(14px,1.2vw,16px)}.video-canvas-overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10}.backdoor-canvas{position:relative;width:100%;height:100%;background:#000;border-radius:12px;overflow:hidden}.backdoor-canvas-image{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1}.backdoor-canvas-overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;pointer-events:none}.control-bar{width:100%;height:clamp(36px,2.8vw,42px);background-color:#fff;border-top:1px solid #e5e7eb;display:flex;justify-content:center;align-items:center;box-sizing:border-box}.control-inner{display:flex;align-items:center;justify-content:center;gap:clamp(12px,1.2vw,16px);flex-wrap:nowrap}.icon-group{display:flex;gap:clamp(6px,.6vw,10px)}.icon-button{width:clamp(28px,2.2vw,32px);height:clamp(28px,2.2vw,32px);background-color:#f9fafb;border:none;border-radius:9999px;display:flex;justify-content:center;align-items:center;transition:background-color .2s ease,transform .1s ease;flex-shrink:0}.icon-button.active{border:clamp(1.5px,.14vw,2px) solid #6b7280;border-radius:clamp(8px,.7vw,10px);background-color:#f9fafb}.icon-button:hover{background-color:#f3f4f6;transform:scale(1.05)}.icon-button:focus{outline:none}.icon{color:#111827;flex-shrink:0}.end-call{background-color:#ef4444;transition:background-color .2s ease,transform .1s ease}.end-call-icon{color:#fff}.end-call:hover{background-color:#dc2626;transform:scale(1.05)}.color-picker{width:clamp(18px,1.4vw,22px);height:clamp(18px,1.4vw,22px);border:none;background:none;cursor:pointer;padding:0}.color-picker::-webkit-color-swatch{border-radius:50%;border:1px solid #ccc}.pen-wrapper,.shape-wrapper{position:relative}.color-palette{display:none;position:absolute;bottom:clamp(32px,2.6vw,38px);left:0;background:#fff;border-radius:clamp(6px,.6vw,8px);padding:clamp(4px,.4vw,5px);box-shadow:0 2px 6px #0003;gap:clamp(2px,.2vw,3px);flex-direction:column;z-index:1000}.color-palette.visible{display:flex}.color-dot{width:clamp(22px,1.8vw,26px);height:clamp(22px,1.8vw,26px);border-radius:50%;border:none;outline:none;box-shadow:none;cursor:pointer;transition:all .2s ease}.color-dot:focus,.color-dot:focus-visible{outline:none;box-shadow:none}.shape-palette{display:none;position:absolute;bottom:clamp(32px,2.6vw,38px);left:0;background:#fff;border-radius:clamp(4px,.4vw,5px);padding:clamp(2px,.2vw,3px);box-shadow:0 2px 6px #0003;gap:clamp(2px,.2vw,3px);flex-direction:column;z-index:1000}.shape-palette.visible{display:flex}.color-button{border:none;box-shadow:0 0 2px #00000026;transition:transform .2s ease}.color-button:hover{transform:scale(1.05)}.color-dot{width:clamp(20px,1.6vw,24px);height:clamp(20px,1.6vw,24px);border-radius:50%;border:none;cursor:pointer;transition:transform .2s ease}.color-dot:hover{transform:scale(1.1)}.drawing-preview{width:100%;flex:1;min-height:0;background-color:#e5e7eb;border-radius:clamp(12px,1.1vw,16px);position:relative;overflow:hidden}.drawing-preview canvas{width:100%;height:100%;display:block;border-radius:clamp(12px,1.1vw,16px)}.drawing-preview__back{position:absolute;top:clamp(18px,1.7vw,24px);left:clamp(18px,1.7vw,24px);padding:clamp(8px,.7vw,10px) clamp(12px,1.1vw,16px);border:none;border-radius:9999px;background:#111827d9;color:#fff;font-size:clamp(12px,1vw,14px);cursor:pointer;box-shadow:0 4px 12px #0003;transition:background .2s ease}.drawing-preview__back:hover{background:#111827}.drawing-preview__toggle{position:absolute;top:clamp(18px,1.7vw,24px);right:clamp(18px,1.7vw,24px);padding:clamp(8px,.7vw,10px) clamp(12px,1.1vw,16px);border:none;border-radius:9999px;background:#111827d9;color:#fff;font-size:clamp(12px,1vw,14px);cursor:pointer;box-shadow:0 4px 12px #0003;transition:background .2s ease;z-index:20}.drawing-preview__toggle:hover{background:#111827}.worker-card{width:100%;max-width:100%;background-color:var(--color-surface-subtle);border-radius:clamp(10px,.8vw,12px);box-shadow:0 1px 2px #0000000d;padding:clamp(8px,1.1vw,10px) clamp(10px,1.1vw,14px);display:flex;flex-direction:column;justify-content:center;position:relative;box-sizing:border-box;transition:all .2s ease}.worker-card.small{background-color:#fff;border-radius:clamp(10px,.8vw,12px);box-shadow:0 1px 2px #0000000d;padding:clamp(8px,.7vw,10px) clamp(12px,1vw,14px)}.worker-card.small:hover{background-color:#f3f4f6;transform:translateY(-1px)}.worker-info{display:flex;justify-content:space-between;align-items:center;min-width:0}.worker-profile{display:flex;align-items:center;gap:clamp(10px,.8vw,12px)}.profile-icon{width:clamp(36px,2.8vw,40px);height:clamp(36px,2.8vw,40px);border-radius:50%;background-color:#e5e7eb}.worker-texts{display:flex;flex-direction:column;gap:clamp(1px,.14vw,2px)}.worker-name{font-weight:600;color:#111827;font-size:clamp(14px,1.1vw,16px)}.worker-role-small,.worker-position{font-size:clamp(11px,.9vw,13px);color:#6b7280}.status-text.waiting{color:#16a34a}.status-text.active{color:#3b82f6}.worker-equipment{font-size:clamp(12px,1vw,14px);color:#374151;font-weight:500}.worker-header-container{position:relative;display:flex;flex-direction:column;align-items:flex-start;width:100%;box-sizing:border-box;overflow:visible}.dropdown-overlay{position:absolute;top:clamp(60px,5.6vw,80px);left:0;width:100%;z-index:10}.dropdown-list{width:100%;background-color:#f9fafb;border-radius:clamp(12px,1.1vw,16px);box-shadow:0 4px 12px #0000001f;padding:clamp(12px,1.1vw,16px);box-sizing:border-box;display:flex;flex-direction:column;gap:clamp(8px,.7vw,10px);animation:dropdownSlide .2s ease}.dropdown-title{font-size:var(--font-size-body-sm);font-weight:600;color:#6b7280;margin-left:clamp(3px,.3vw,4px)}@keyframes dropdownSlide{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.worker-profile{display:flex;align-items:flex-start;gap:clamp(12px,1.1vw,16px);min-width:0}.worker-texts{display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start}.top-row{display:flex;align-items:baseline;gap:clamp(6px,.6vw,8px)}.worker-name{font-weight:600;color:var(--color-text-primary);font-size:var(--font-size-title)}.worker-position{font-size:var(--font-size-body-sm);color:#9ca3af}.status-text{font-size:var(--font-size-body-md);font-weight:500;line-height:1.2;margin-left:0}.dropdown-icon{all:unset;display:flex;align-items:center;justify-content:center;width:clamp(28px,2.2vw,32px);height:clamp(28px,2.2vw,32px);cursor:pointer;border-radius:clamp(6px,.6vw,8px);background-color:transparent;color:#6b7280;transition:all .2s ease}.dropdown-icon:hover{background-color:#f3f4f6;transform:scale(1.05)}.dropdown-icon:focus{outline:none;border:none;box-shadow:none}.dropdown-icon:active{background-color:#e5e7eb;transform:scale(.97)}.communication-container>.work-panel{flex:3 1 0;min-width:260px;max-width:100%;height:100%;background-color:var(--color-surface-base);border-radius:clamp(8px,.9vw,12px);box-shadow:0 2px 4px #00000040;display:flex;flex-direction:column;justify-content:flex-start;gap:clamp(10px,1.1vw,12px);padding:clamp(10px,1.1vw,12px);box-sizing:border-box;min-height:0;overflow:hidden;flex-shrink:1}.lk-room-container.communication-livekit{width:100%;height:100%;padding:0;margin:0;display:flex;background:transparent}.communication-livekit>.communication-container{flex:1}.communication-container{box-sizing:border-box;width:100%;height:100%;background-color:var(--color-surface-subtle);display:flex;flex-wrap:nowrap;align-items:stretch;gap:clamp(10px,1vw,14px);padding:clamp(0px,1vw,2px);overflow-y:auto;min-width:0}.communication-container:not(.empty)>*:first-child{flex:6 1 0;min-width:400px;max-width:100%;height:100%;display:flex;min-height:0;flex-shrink:0}.communication-container.empty{display:flex;justify-content:center;align-items:center;height:100vh;width:100%;background-color:var(--color-surface-subtle);transform:translateY(-6%)}.communication-empty-card{width:clamp(280px,32vw,360px);max-height:80vh;padding:clamp(24px,3vw,32px) clamp(22px,2.6vw,28px);border-radius:clamp(12px,1vw,16px);background-color:var(--color-surface-base);box-shadow:0 12px 28px #19213d1f;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(12px,1.5vw,18px);text-align:center;color:var(--color-text-primary);overflow-y:auto}.communication-empty-title{font-size:var(--font-size-heading-md);font-weight:700;color:var(--color-text-primary);margin:0;line-height:1.3}.communication-empty-sub{font-size:var(--font-size-body-md);color:var(--color-text-secondary);line-height:1.45;margin:0;max-width:clamp(240px,32vw,340px)}.communication-empty-actions{display:flex;flex-direction:column;align-items:center;width:100%;gap:12px}.communication-empty-button,.communication-empty-secondary{width:clamp(200px,85%,280px);height:clamp(30px,2.8vw,34px);border-radius:10px;border:none;font-size:var(--font-size-body-sm);font-weight:700;cursor:pointer;transition:all .2s ease}.communication-empty-button{background-color:#3b4a6b;color:#fff}.communication-empty-button:hover{background-color:#2f3b5a}.communication-empty-secondary{border:1px solid #d0d4df;background:#f8f9fc;color:var(--color-text-primary);font-weight:600}.communication-empty-secondary:hover{border-color:#3b4a6b;background:#eef1f9}.login-page-wrapper{min-height:100vh;display:flex;justify-content:center;align-items:center;background-color:var(--color-surface-subtle);font-family:NotoSansKR}.login-form{width:100%;max-width:340px;background-color:var(--color-surface-base);border-radius:16px;padding:24px 28px;display:flex;flex-direction:column;gap:12px}.login-logo{display:flex;justify-content:center;align-items:center;margin-bottom:10px}.login-logo img{width:130px;height:auto}.login-label{display:flex;flex-direction:column;gap:6px;font-size:var(--font-size-body-sm);font-weight:600;color:#3b4a6b}.login-input{height:36px;border-radius:10px;border:1px solid #d1d5db;padding:0 14px;font-size:var(--font-size-body-md);color:#111827}.login-input:focus{outline:2px solid #3b4a6b;border-color:transparent}.login-submit{height:36px;border:none;border-radius:10px;background-color:#3b4a6b;color:var(--color-surface-base);font-size:var(--font-size-body-md);font-weight:700;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.login-submit:hover{box-shadow:0 2px 6px #3b4a6b26}.login-error{color:#dc2626;font-size:13px;text-align:left;margin:0}.login-success{color:#16a34a;font-size:13px;text-align:left;margin:0}.login-signup-link{text-align:center;font-size:var(--font-size-body-sm);color:var(--color-text-muted)}.login-link{color:var(--color-text-primary);font-size:var(--font-size-body-sm);font-weight:600;cursor:pointer;margin-left:6px}.login-link:hover{text-decoration:underline}.signup-page-wrapper{position:relative;min-height:100vh;display:flex;justify-content:center;align-items:center;background-color:var(--color-surface-subtle);font-family:NotoSansKR}.signup-form{width:100%;max-width:340px;background-color:var(--color-surface-base);border-radius:16px;padding:20px 26px;display:flex;flex-direction:column;gap:10px}.signup-logo{display:flex;justify-content:center;align-items:center;margin-bottom:8px}.signup-logo img{width:130px;height:auto}.signup-label{display:flex;flex-direction:column;gap:5px;font-size:var(--font-size-body-sm);font-weight:600;color:var(--color-text-primary)}.signup-email-box{display:flex;align-items:center;justify-content:space-between;width:100%;gap:8px}.signup-email-wrap{position:relative;display:flex;align-items:center;width:100%;gap:8px}.signup-input{width:100%;height:36px;border-radius:10px;border:1px solid #d1d5db;padding:0 12px;font-size:var(--font-size-body-sm);color:#111827;box-sizing:border-box}.signup-email-wrap .signup-input{padding:0 75px 0 12px}.signup-input:focus{outline:2px solid #3b4a6b;border-color:transparent}.signup-submit-redundancy{position:absolute;top:50%;right:6px;transform:translateY(-50%);height:26px;padding:0 10px;border:none;border-radius:6px;background-color:#3b4a6b;color:var(--color-surface-base);font-size:10px;font-weight:600;cursor:pointer;transition:box-shadow .15s ease;white-space:nowrap}.signup-submit-redundancy:hover{box-shadow:0 2px 6px #3b4a6b26}.signup-submit{height:36px;border:none;border-radius:10px;background-color:#3b4a6b;color:var(--color-surface-base);font-size:12px;font-weight:700;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;margin-top:2px}.signup-submit:hover{box-shadow:0 2px 6px #3b4a6b26}.signup-error{color:#dc2626;font-size:10px;text-align:left;margin:0}.signup-success{color:#16a34a;font-size:10px;text-align:left;margin:0}.signup-label-group{display:flex;flex-direction:column;gap:8px}.cctv-page-container{width:100%;height:100%;display:flex;flex-direction:column}.cctv-grid{flex:1;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(10px,1vw,14px);width:100%;height:100%;padding:0;align-items:stretch;justify-items:stretch}@media(max-width:1200px){.cctv-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.cctv-grid{grid-template-columns:repeat(1,1fr)}}.cctv-tile{position:relative;background:var(--color-surface-base);border-radius:12px;overflow:hidden;cursor:pointer;aspect-ratio:16 / 9;display:flex;justify-content:center;align-items:center;border:1px solid rgba(0,0,0,.05);box-shadow:0 2px 4px #0000001a;transition:transform .15s ease,box-shadow .15s ease;height:100%}.cctv-tile:hover{transform:translateY(-2px);box-shadow:0 4px 10px #00000029}.cctv-video{width:100%;height:100%;object-fit:fill;border-radius:12px}.cctv-label{position:absolute;bottom:8px;left:8px;background:#0000008c;color:#fff;padding:4px 8px;border-radius:6px;font-size:12px;font-weight:500}.detail-view{width:100%;height:calc(100vh - 80px);display:flex;flex-direction:column;background:#000;position:relative;border-radius:16px;overflow:hidden}.detail-view.restricted{display:flex;justify-content:center;align-items:center;background:#f4f5f7}.detail-close-inline{position:absolute;top:10px;right:10px;z-index:20;background:#0000008c;color:#fff;border:none;font-size:16px;cursor:pointer;padding:4px 10px;border-radius:6px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.detail-close-inline:hover{background:#282828a6}.detail-video-box{flex:1;width:100%;height:100%;position:relative;background:#000}.detail-video-inline{width:100%;height:100%;object-fit:fill;background:#000}.detail-info-inline{position:absolute;left:10px;bottom:10px;display:flex;align-items:center;gap:12px;z-index:50}.detail-label-inline{background:#0000008c;padding:6px 12px;border-radius:8px;color:#fff;font-size:15px;font-weight:500;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.detail-inline-buttons{display:flex;align-items:center;gap:3px}.detail-ctrl-btn{display:flex;align-items:center;gap:6px;background:#0000008c;border:1px solid rgba(255,255,255,.15);color:#fff;padding:8px 14px;border-radius:8px;cursor:pointer;transition:.15s;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.detail-ctrl-btn.call:hover{background:#3bdc7273}.detail-ctrl-btn.listen:hover{background:#4d6bff73}.detail-ctrl-btn.talk:hover{background:#ff704373}.cctv-tile.disabled{pointer-events:none;filter:grayscale(100%);opacity:.5}.live-badge{margin-left:6px;color:#ff4d4d;font-weight:700}.cctv-offline-box{width:100%;height:100%;background:#1b1b1b;color:#666;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:14px;border-radius:10px}.offline-title{font-size:18px;font-weight:700;margin-bottom:6px;color:#444}.offline-sub{font-size:14px;color:#777}
