:root{--bg-app: #f3f4f6;--bg-panel: #ffffff;--text: #18181b;--text-muted: #71717a;--border: rgba(24, 24, 27, .08);--fill: #f2f3f5;--radius: 12px;--shadow-float: 0 6px 20px rgba(24, 24, 27, .05);font-family:Inter,Pretendard,Segoe UI,system-ui,sans-serif;color:var(--text);background:var(--bg-app);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}:root[data-theme=dark]{--bg-app: #0e0e10;--bg-panel: #18181b;--text: #f4f4f5;--text-muted: #a1a1aa;--border: rgba(255, 255, 255, .08);--fill: #222226;--shadow-float: 0 8px 28px rgba(0, 0, 0, .35)}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{background:var(--bg-app)}.app-shell{display:flex;align-items:stretch;min-height:100vh;padding:10px;gap:10px;background:var(--bg-app)}.app-nav{flex-shrink:0;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-float)}.app-rail{width:56px;display:flex;flex-direction:column;align-items:center;padding:14px 0 12px}.rail-mark{width:32px;height:32px;border:0;border-radius:8px;background:var(--text);color:var(--bg-app);font-size:13px;font-weight:650;cursor:pointer}.rail-nav,.rail-footer{display:flex;flex-direction:column;gap:4px;align-items:center}.rail-nav{flex:1;margin-top:18px}.rail-btn{width:36px;height:36px;border:0;border-radius:8px;background:transparent;color:var(--text-muted);cursor:pointer;display:grid;place-items:center;font-size:16px}.rail-btn:hover,.rail-btn.is-active{background:var(--fill);color:var(--text)}.nav-panel{width:208px;min-width:0;overflow:hidden;padding:16px 0 10px;display:flex;flex-direction:column}.nav-panel-head{padding:0 10px 10px;min-width:0}.nav-user{display:flex;align-items:center;gap:10px;min-width:0;flex:1;padding:0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.nav-user span:last-child{min-width:0}.nav-user strong,.nav-user span span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-user strong{font-size:13px;font-weight:600}.nav-user span span{margin-top:2px;color:var(--text-muted);font-size:12px}.nav-avatar{width:32px;height:32px;flex-shrink:0;border-radius:8px;background:var(--text);color:var(--bg-app);display:grid;place-items:center;font-size:12px;font-weight:650}.nav-avatar.is-guest,.rail-mark.is-guest{background:var(--fill);color:var(--text-muted)}.nav-search-wrap{padding:0 10px 8px;min-width:0}.nav-search,.nav-search.ant-input-affix-wrapper{width:100%;max-width:100%;min-width:0;background:var(--fill)!important}.nav-menu-wrap{flex:1;min-width:0;overflow:auto}.nav-empty{margin:12px 16px;color:var(--text-muted);font-size:12px;line-height:1.5}.nav-panel .ant-menu{border-inline-end:0!important;background:transparent!important}.nav-panel .ant-menu-item,.nav-panel .ant-menu-submenu-title{padding-inline:10px!important}.nav-panel .ant-menu-item-group-title{padding:10px 12px 4px;font-size:11px;letter-spacing:.04em;color:var(--text-muted)!important}.nav-item-label{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%}.nav-panel-foot{display:flex;align-items:center;gap:4px;padding:8px 10px 6px}.theme-toggle{flex:1;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px;border-radius:10px;background:var(--fill)}.theme-toggle>span{color:var(--text-muted);font-size:12px}.theme-toggle-control{display:flex;align-items:center;gap:6px;color:var(--text-muted);font-size:12px}.guest-lead{max-width:520px;color:var(--text-muted);font-size:13px;line-height:1.6}.login-form{width:100%}.app-main{flex:1;min-width:0;display:flex;flex-direction:column;padding:22px 24px 24px;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-float)}.page-header{margin-bottom:18px}.page-breadcrumb{margin-bottom:6px;color:var(--text-muted);font-size:12px}.page-header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.page-header h1{margin:0;font-size:20px;font-weight:600;letter-spacing:-.02em}.page-header p{margin:4px 0 0;color:var(--text-muted);font-size:13px;font-weight:400}.page-header-actions{display:flex;align-items:center;gap:8px}.metric-row{display:flex;gap:28px;margin-bottom:16px}.metric-row span{display:block;color:var(--text-muted);font-size:12px}.metric-row strong{display:block;margin-top:2px;font-size:18px;font-weight:600;letter-spacing:-.02em}.toolbar{display:flex;align-items:center;gap:8px;margin-bottom:10px}.toolbar-search{width:240px}.toolbar-filter{width:140px}.col-key{font-weight:500}.col-meta{color:var(--text-muted)}.kv-list{margin:0;max-width:420px}.kv-list>div{display:grid;grid-template-columns:72px 1fr;gap:12px;padding:10px 0}.kv-list dt{margin:0;color:var(--text-muted);font-size:12px}.kv-list dd{margin:0;font-size:13px;font-weight:500}.status-tag.ant-tag{margin-inline-end:0;padding:1px 8px 1px 6px;border-radius:8px;font-size:12px;line-height:20px;display:inline-flex;align-items:center;gap:6px}.status-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.status-tag-neutral,.status-tag-wait{color:#71717a;background:#f2f3f5}.status-tag-progress,.status-tag-done{color:#3f7a5a;background:#eef5f1}.status-tag-warn{color:#b7813a;background:#f7f1e8}:root[data-theme=dark] .status-tag-neutral,:root[data-theme=dark] .status-tag-wait{color:#a1a1aa;background:#27272a}:root[data-theme=dark] .status-tag-progress,:root[data-theme=dark] .status-tag-done{color:#8fbaa0;background:#1d2a23}:root[data-theme=dark] .status-tag-warn{color:#d4b07a;background:#2a2418}.ant-table-wrapper .ant-table{background:transparent}.ant-table-thead>tr>th{font-size:12px;font-weight:500}.ant-table-wrapper .ant-table-thead>tr>th{border-bottom-color:transparent!important}.ant-table-wrapper .ant-table-tbody>tr>td{border-bottom-color:#18181b0f!important}:root[data-theme=dark] .ant-table-wrapper .ant-table-tbody>tr>td{border-bottom-color:#ffffff0f!important}.ant-btn-primary{box-shadow:none!important}.ant-btn:focus-visible,.ant-input:focus-visible,.ant-input-affix-wrapper-focused,.rail-btn:focus-visible,.nav-user:focus-visible{outline:2px solid var(--text);outline-offset:2px}
