@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;width:100%;overflow:hidden}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg-base, #0a0a0a);color:var(--text-primary, #e0e0e0)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb, #333);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover, #555)}.login-container{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,var(--login-gradient-start, #0a0a0a) 0%,var(--login-gradient-mid, #1a1a2e) 50%,var(--login-gradient-end, #16213e) 100%)}.login-card{width:100%;max-width:420px;padding:48px 40px;background:var(--login-card-bg, rgba(20, 20, 20, .95));border-radius:16px;border:1px solid var(--border-color, #222);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.login-logo{text-align:center;margin-bottom:40px}.login-logo h1{font-size:28px;font-weight:700;color:var(--text-primary, #fff);margin-bottom:4px}.login-logo p{font-size:14px;color:var(--text-secondary, #888)}.main-layout{height:100vh;display:flex;flex-direction:column}.main-layout .ant-layout-header{display:flex;align-items:center;justify-content:space-between;padding:0 24px;height:56px;line-height:56px;border-bottom:1px solid var(--border-color, #222);z-index:10}.header-left{display:flex;align-items:center;gap:8px}.header-left h2{font-size:18px;font-weight:600;color:var(--text-primary, #fff);margin:0}.header-right{display:flex;align-items:center;gap:16px}.content-body{flex:1;display:flex;overflow:hidden}.tab-sidebar{width:220px;min-width:220px;background:var(--bg-surface, #141414);border-right:1px solid var(--border-color, #222);display:flex;flex-direction:column;padding:8px 0;transition:width .2s ease,min-width .2s ease}.tab-sidebar-collapsed{width:56px;min-width:56px}.tab-sidebar-toggle{padding:4px 8px;border-top:1px solid var(--border-color, #222);display:flex;justify-content:center}.tab-sidebar .ant-menu{border-inline-end:none!important;width:100%!important}.tab-content{flex:1;overflow:auto;padding:24px 28px}.explorer-layout{display:flex;height:100%;overflow:hidden}.explorer-sidebar{width:360px;min-width:360px;border-right:1px solid var(--border-color-light, #1f1f1f);display:flex;flex-direction:column;background:var(--bg-surface, #111);overflow:hidden;transition:width .2s ease,min-width .2s ease}.explorer-sidebar-collapsed{width:40px;min-width:40px}.explorer-sidebar-toggle{padding:4px 8px;border-top:1px solid var(--border-color-light, #1f1f1f);flex-shrink:0;margin-top:auto}.explorer-tree-header{padding:12px;border-bottom:1px solid var(--border-color-light, #1f1f1f);flex-shrink:0}.explorer-tree-body{flex:1;overflow-y:auto;overflow-x:auto;padding:8px 4px}.tree-node-row{display:inline-flex;align-items:center;width:100%;gap:2px}.tree-node-label{flex:1;display:flex;align-items:center;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13.5px}.tree-node-label-tag{margin-left:6px;font-size:10px;color:var(--node-label-color, #555);background:var(--node-label-bg, #1a1a1a);border:1px solid var(--node-label-border, #333);border-radius:3px;padding:0 4px;line-height:16px}.tree-node-actions{display:flex;align-items:center;gap:1px;opacity:0;transition:opacity .15s ease;flex-shrink:0}.ant-tree-treenode:hover .tree-node-actions,.ant-tree-treenode-selected .tree-node-actions{opacity:1}.tree-action-btn.ant-btn{width:28px!important;height:28px!important;min-width:28px!important;padding:0!important;font-size:15px!important;border-radius:5px!important}.explorer-tree-body .ant-tree,.calendar-tree-body .ant-tree{min-width:max-content}.ant-tree{background:transparent!important;color:var(--text-primary, #d0d0d0)!important}.ant-tree .ant-tree-treenode{padding-bottom:1px!important;border-radius:6px;transition:background .1s}.ant-tree .ant-tree-node-content-wrapper{border-radius:6px!important;transition:background .1s!important}.ant-tree .ant-tree-node-content-wrapper:hover{background:var(--tree-hover-bg, #1a1a1a)!important}.ant-tree .ant-tree-node-content-wrapper.ant-tree-node-selected{background:var(--tree-selected-bg, #1a2540)!important}.ant-tree .ant-tree-indent-unit:before{border-right:1px solid var(--border-color, #2a2a2a)!important}.explorer-sidebar-header{padding:16px;border-bottom:1px solid var(--border-color, #222);display:flex;flex-direction:column;gap:8px}.explorer-breadcrumb{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.explorer-actions{display:flex;gap:6px;flex-wrap:wrap}.explorer-list{flex:1;overflow-y:auto;padding:8px}.explorer-item{display:flex;align-items:center;padding:10px 12px;border-radius:8px;cursor:pointer;transition:all .15s;gap:10px;margin-bottom:2px;border:1px solid transparent}.explorer-item:hover{background:var(--explorer-item-hover-bg, #1a1a1a);border-color:var(--border-color, #333)}.explorer-item.active{background:var(--explorer-item-active-bg, #1a2332);border-color:var(--explorer-item-active-border, #1677ff)}.explorer-item-icon{font-size:18px;flex-shrink:0}.explorer-item-info{flex:1;min-width:0}.explorer-item-name{font-size:14px;font-weight:500;color:var(--text-primary, #e0e0e0);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.explorer-item-meta{font-size:11px;color:var(--text-secondary, #666);margin-top:2px}.explorer-detail{flex:1;overflow-y:auto;padding:24px}.explorer-detail-header{margin-bottom:24px}.explorer-detail-header h3{font-size:20px;font-weight:600;color:var(--text-primary, #fff);margin-bottom:4px}.explorer-detail-header p{font-size:13px;color:var(--text-secondary, #888)}.calendar-page-layout{display:flex;height:100%;overflow:hidden}.calendar-tree-sidebar{width:360px;min-width:360px;border-right:1px solid var(--border-color-light, #1f1f1f);display:flex;flex-direction:column;background:var(--bg-surface, #111);overflow:hidden}.calendar-tree-header{padding:12px;border-bottom:1px solid var(--border-color-light, #1f1f1f);flex-shrink:0}.calendar-tree-body{flex:1;overflow-y:auto;overflow-x:auto;padding:8px 4px}.calendar-main{flex:1;display:flex;flex-direction:column;overflow:hidden}.calendar-grid-area{flex:0 0 auto;overflow-y:auto;padding:16px}.calendar-bottom-detail{border-top:1px solid var(--border-color, #222);background:var(--bg-surface, #111);padding:16px 20px;flex:1 1 0;min-height:220px;overflow-y:auto;display:flex;flex-direction:column}.calendar-bottom-cards{display:flex;gap:8px;flex-wrap:wrap}.calendar-bottom-cards .calendar-event-card{flex:0 0 320px;max-width:400px}.week-calendar{display:flex;flex-direction:column;gap:0}.week-row{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--border-color-light, #1a1a1a)}.week-day-header{padding:8px 4px;text-align:center;font-size:12px;font-weight:600;color:var(--text-secondary, #888);border-bottom:1px solid var(--border-color, #222)}.week-header-cell{padding:8px 4px;text-align:center;font-size:12px;font-weight:600;color:var(--text-secondary, #888);border-bottom:1px solid var(--border-color, #222);display:flex;align-items:center;justify-content:center}.week-day{padding:6px 4px;text-align:center;cursor:pointer;border-radius:4px;position:relative;min-height:36px;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:background .15s}.day-number-wrapper{position:relative;display:flex;align-items:center;justify-content:center;width:32px;height:32px}.day-maintenance-dot{position:absolute;width:28px;height:28px;border-radius:50%;opacity:.35;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none}.week-day:hover{background:var(--tree-hover-bg, #1a1a1a)}.week-day.today{background:var(--calendar-today-bg, #1a2332);border:1px solid var(--calendar-selected-bg, #1677ff)}.week-day.selected{background:var(--calendar-selected-bg, #1677ff);color:#fff}.week-day.other-month{opacity:.3}.week-day .day-number{font-size:13px;font-weight:500;position:relative;z-index:1}.status-overdue{color:var(--color-overdue, #ff4d4f)}.status-upcoming{color:var(--color-upcoming, #faad14)}.status-ok{color:var(--color-ok, #52c41a)}@media(max-width:768px){.tab-sidebar{display:none}.explorer-sidebar,.explorer-sidebar-collapsed{width:100%;min-width:unset}.explorer-detail,.calendar-tree-sidebar{display:none}.calendar-bottom-detail{max-height:200px}.tab-content{padding:16px}}.detail-card{background:var(--bg-surface, #141414);border:1px solid var(--border-color, #222);border-radius:12px;padding:20px;margin-bottom:16px}.detail-card h4{font-size:15px;font-weight:600;color:var(--text-primary, #fff);margin-bottom:16px;display:flex;align-items:center;gap:8px}.info-grid{display:grid;grid-template-columns:140px 1fr;gap:8px 16px;font-size:13px}.info-grid .label{color:var(--text-secondary, #888)}.info-grid .value{color:var(--text-primary, #e0e0e0)}.profile-section{max-width:800px}.people-layout{display:flex;gap:24px;height:100%}.people-list{flex:1}.issues-section{margin-bottom:32px}.issues-section h3{font-size:16px;font-weight:600;margin-bottom:16px;display:flex;align-items:center;gap:8px}.empty-detail{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-tertiary, #555);gap:12px}.empty-detail .anticon{font-size:48px}.qr-scan-wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow-y:auto;-webkit-overflow-scrolling:touch;background:#0a0a0a;z-index:1}
