:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#17213a;background:#f4f7fb;font-synthesis:none;--page: #f4f7fb;--surface: #ffffff;--surface-raised: #ffffff;--surface-soft: #eef3fa;--text: #17213a;--heading: #10192d;--muted: #68758d;--line: #dce3ee;--line-strong: #c8d2e1;--navy: #111b33;--navy-soft: #1c2948;--blue: #2765d9;--blue-hover: #1d50b5;--blue-soft: #e8f0ff;--green: #16845b;--green-soft: #e5f7ef;--orange: #bd6914;--orange-soft: #fff1df;--red: #c73b4b;--red-soft: #ffeaed;--chart-grid: #e1e7f0;--shadow-sm: 0 1px 2px rgba(15, 27, 50, .05), 0 8px 22px rgba(15, 27, 50, .05);--shadow-lg: 0 24px 70px rgba(15, 27, 50, .17)}:root[data-theme=dark]{color:#e7edf8;background:#0b1120;--page: #0b1120;--surface: #121b2e;--surface-raised: #182338;--surface-soft: #1a263c;--text: #e7edf8;--heading: #f8faff;--muted: #9ba8bd;--line: #29364d;--line-strong: #3a4962;--navy: #070c18;--navy-soft: #18243d;--blue: #6b9cff;--blue-hover: #89afff;--blue-soft: #1b315a;--green: #56d29b;--green-soft: #163a32;--orange: #f0a558;--orange-soft: #442d19;--red: #ff7b89;--red-soft: #49242c;--chart-grid: #2b3850;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .22), 0 10px 28px rgba(0, 0, 0, .18);--shadow-lg: 0 24px 70px rgba(0, 0, 0, .42)}*{box-sizing:border-box}html{min-width:320px;background:var(--page)}body{margin:0;min-width:320px;min-height:100vh;background:var(--page);color:var(--text)}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button,a{color:inherit}h1,h2,h3,p{margin-top:0}h1,h2,h3,strong{color:var(--heading)}h1,h2,h3{font-family:Inter,ui-sans-serif,system-ui,sans-serif;letter-spacing:-.035em}h1{margin-bottom:8px;font-size:clamp(30px,3vw,42px);line-height:1.12}h2{margin-bottom:10px;font-size:clamp(20px,2vw,25px);line-height:1.25}h3{margin-bottom:6px}p{color:var(--muted);line-height:1.58}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid color-mix(in srgb,var(--blue) 40%,transparent);outline-offset:2px}.page-loader{display:grid;min-height:100vh;place-items:center;color:var(--muted);padding:24px}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;z-index:20;display:flex;width:272px;flex-direction:column;padding:28px 20px 20px;color:#dfe7f7;background:var(--navy);border-right:1px solid rgba(255,255,255,.06)}.logo{display:flex;align-items:center;gap:12px;min-width:0;padding:0 8px 30px}.logo>span,.brand-mark{display:grid;width:42px;height:42px;flex:0 0 42px;place-items:center;border-radius:13px;color:#fff;background:linear-gradient(145deg,#3778ec,#1d4fb0);box-shadow:0 9px 24px #1a52b852;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:15px;font-weight:800}.logo div,.auth-brand div{display:grid;min-width:0}.logo strong{color:#fff;font-size:18px;line-height:1.2}.logo small{margin-top:2px;color:#8fa0bd;font-size:12px;letter-spacing:.12em;text-transform:uppercase}.sidebar nav{display:grid;gap:6px}.sidebar nav a{display:flex;align-items:center;gap:12px;min-height:46px;padding:11px 13px;border-radius:10px;color:#a9b5cb;font-weight:600;text-decoration:none;transition:background .18s ease,color .18s ease,transform .18s ease}.sidebar nav a:hover{color:#fff;background:#ffffff0e;transform:translate(2px)}.sidebar nav a.active{color:#fff;background:#244e97;box-shadow:inset 0 0 0 1px #ffffff0f}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:42px;margin-top:auto;padding:9px 12px;border:1px solid rgba(255,255,255,.11);border-radius:10px;color:#c4cee0;background:#ffffff0b;font-weight:600;cursor:pointer}.theme-toggle:hover{color:#fff;background:#ffffff17}.theme-toggle.light-surface{margin-top:0;border-color:var(--line);color:var(--text);background:var(--surface-soft)}.theme-toggle.light-surface:hover{color:var(--heading);background:var(--blue-soft)}.sidebar-user{display:grid;grid-template-columns:38px minmax(0,1fr);gap:10px;align-items:center;margin-top:13px;padding:14px 8px 0;border-top:1px solid rgba(255,255,255,.09)}.avatar{display:grid;width:38px;height:38px;place-items:center;border-radius:50%;color:#fff;background:#28477c;font-weight:700}.user-copy{display:grid;min-width:0;gap:3px}.user-copy strong{overflow:hidden;color:#f4f7ff;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.user-copy small{overflow-wrap:anywhere;color:#91a0b9;font-size:11px;line-height:1.3}.logout-button{grid-column:1 / -1;display:flex;align-items:center;justify-content:center;gap:8px;min-height:38px;margin-top:2px;border:0;border-radius:9px;color:#aebbd0;background:transparent;cursor:pointer}.logout-button:hover{color:#fff;background:#ffffff12}.content{min-height:100vh;margin-left:272px;padding:44px clamp(30px,5vw,76px) 70px}.auth-shell{display:grid;min-height:100vh;place-items:center;padding:28px;background:radial-gradient(circle at 12% 15%,color-mix(in srgb,var(--blue) 11%,transparent),transparent 36%),radial-gradient(circle at 88% 85%,color-mix(in srgb,var(--blue) 8%,transparent),transparent 34%),var(--page)}.auth-card{width:min(100%,490px);padding:clamp(28px,5vw,46px);border:1px solid var(--line);border-radius:22px;background:var(--surface-raised);box-shadow:var(--shadow-lg)}.auth-top{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:42px}.auth-brand{display:flex;align-items:center;gap:12px}.auth-brand strong{font-size:17px;line-height:1.25}.auth-brand span{margin-top:2px;color:var(--muted);font-size:12px;letter-spacing:.1em;text-transform:uppercase}.auth-card h1{font-size:clamp(30px,6vw,38px)}.auth-intro{margin-bottom:27px}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:30px;margin-bottom:34px}.page-header>div{min-width:0}.page-header p:not(.eyebrow){max-width:680px;margin-bottom:0}.eyebrow{margin-bottom:7px;color:var(--blue);font-size:12px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.live-pill,.status{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;gap:8px;padding:6px 10px;border-radius:999px;color:var(--muted);background:var(--surface-soft);font-size:12px;font-weight:700;white-space:nowrap}.live-pill{margin-top:7px;color:var(--green);background:var(--green-soft)}.live-pill span{width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 0 4px color-mix(in srgb,currentColor 14%,transparent)}.status.large{padding:8px 13px;font-size:13px}.status.success{color:var(--green);background:var(--green-soft)}.status.danger{color:var(--red);background:var(--red-soft)}.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;margin-bottom:24px}.metric{min-width:0;padding:22px;border:1px solid var(--line);border-radius:15px;background:var(--surface);box-shadow:var(--shadow-sm)}.metric-icon{display:grid;width:40px;height:40px;margin-bottom:22px;place-items:center;border-radius:11px;color:var(--blue);background:var(--blue-soft)}.metric.warn .metric-icon{color:var(--orange);background:var(--orange-soft)}.metric small{display:block;overflow-wrap:anywhere;color:var(--muted);font-size:13px;font-weight:600}.metric strong{display:block;margin-top:6px;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:clamp(27px,3vw,35px);line-height:1.2}.compact-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.compact-grid .metric{padding:19px 20px}.compact-grid .metric strong{font-size:27px}.panel{padding:clamp(22px,3vw,30px);border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow-sm)}.panel>:last-child{margin-bottom:0}.welcome-panel{display:flex;align-items:center;justify-content:space-between;gap:40px;min-height:220px;overflow:hidden}.welcome-panel>div:first-child{max-width:700px}.orbit{position:relative;display:grid;width:130px;height:130px;flex:0 0 130px;place-items:center;border:1px solid var(--line);border-radius:50%}.orbit:before,.orbit:after{position:absolute;content:"";border:1px solid var(--line);border-radius:50%}.orbit:before{top:15px;right:15px;bottom:15px;left:15px}.orbit:after{top:32px;right:32px;bottom:32px;left:32px;background:var(--blue-soft)}.orbit span{z-index:1;color:var(--blue);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-weight:800}.card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.entity-card{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:16px;align-items:center;min-height:126px;padding:21px;border:1px solid var(--line);border-radius:15px;color:var(--text);background:var(--surface);box-shadow:var(--shadow-sm);text-decoration:none}.entity-card.linked{transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease}.entity-card.linked:hover{border-color:color-mix(in srgb,var(--blue) 45%,var(--line));transform:translateY(-2px);box-shadow:0 14px 32px #132b511c}.entity-icon{display:grid;width:48px;height:48px;place-items:center;border-radius:13px;color:var(--blue);background:var(--blue-soft)}.entity-card small{color:var(--muted);overflow-wrap:anywhere}.entity-card h3{margin:3px 0 4px}.entity-card p{margin:0;overflow-wrap:anywhere;font-size:14px}.card-arrow{color:var(--muted)}.entity-actions{display:grid;justify-items:end;gap:10px}.icon-action{min-height:36px;padding:7px 10px;font-size:12px}.primary,.secondary,.text-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;border-radius:10px;font-weight:700;text-decoration:none;cursor:pointer;transition:background .18s ease,border-color .18s ease,transform .18s ease}.primary{padding:11px 18px;border:1px solid var(--blue);color:#fff;background:#2765d9}.primary:hover{border-color:#1d50b5;background:#1d50b5;transform:translateY(-1px)}.primary.compact{min-height:42px;padding:9px 15px;white-space:nowrap}.secondary{padding:10px 15px;border:1px solid var(--line-strong);color:var(--text);background:var(--surface)}.secondary:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-soft)}.text-button{min-height:34px;padding:5px 8px;border:0;color:var(--blue);background:transparent}.text-button:hover{background:var(--blue-soft)}button:disabled{opacity:.55;cursor:not-allowed;transform:none!important}.form-stack{display:grid;gap:18px}.form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-row.three{grid-template-columns:repeat(3,minmax(0,1fr))}label{display:grid;min-width:0;gap:7px;color:var(--text);font-size:13px;font-weight:700}.field-help{color:var(--muted);font-size:12px;font-weight:500}input,textarea,select{width:100%;min-width:0;border:1px solid var(--line-strong);border-radius:9px;color:var(--text);background:var(--surface);transition:border-color .18s ease,box-shadow .18s ease}input,select{min-height:44px;padding:9px 11px}textarea{padding:11px;line-height:1.5;resize:vertical}input:hover,textarea:hover,select:hover{border-color:color-mix(in srgb,var(--blue) 55%,var(--line))}input:focus,textarea:focus,select:focus{border-color:var(--blue);box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 13%,transparent);outline:0}.checkbox{display:flex;align-items:center;gap:9px}.checkbox input{width:18px;min-height:18px;accent-color:var(--blue)}.error-box{padding:11px 13px;border:1px solid color-mix(in srgb,var(--red) 30%,transparent);border-radius:9px;color:var(--red);background:var(--red-soft);line-height:1.45}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;overflow-y:auto;padding:24px;background:#050b179e;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.modal{position:relative;width:min(100%,670px);max-height:calc(100vh - 48px);overflow-y:auto;padding:clamp(25px,4vw,38px);border:1px solid var(--line);border-radius:18px;background:var(--surface-raised);box-shadow:var(--shadow-lg)}.close{position:absolute;top:17px;right:17px;display:grid;width:38px;height:38px;place-items:center;border:0;border-radius:9px;color:var(--muted);background:var(--surface-soft);cursor:pointer}.close:hover{color:var(--heading)}.back-link{display:inline-flex;align-items:center;gap:7px;margin-bottom:22px;color:var(--muted);font-size:14px;font-weight:700;text-decoration:none}.back-link:hover{color:var(--blue)}.project-head{margin-bottom:25px}.tabs{display:flex;gap:5px;margin-bottom:25px;padding:5px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:var(--shadow-sm)}.tabs button{flex:1 1 auto;min-height:40px;padding:8px 11px;border:0;border-radius:8px;color:var(--muted);background:transparent;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap}.tabs button:hover{color:var(--text);background:var(--surface-soft)}.tabs button.active{color:#fff;background:#2765d9}.tab-content{display:grid;gap:20px}.range-buttons{display:flex;gap:7px;justify-content:flex-end}.range-buttons button{min-height:36px;padding:6px 12px;border:1px solid var(--line);border-radius:8px;color:var(--muted);background:var(--surface);font-weight:700;cursor:pointer}.range-buttons button.active{border-color:var(--blue);color:var(--blue);background:var(--blue-soft)}.chart-panel{min-height:410px}.chart-panel h2{margin-bottom:22px}.panel-title{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.two-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}.record-list{display:grid;gap:9px;margin-top:20px}.record-list>div{display:grid;gap:3px;padding:12px;border:1px solid var(--line);border-radius:9px;background:var(--surface-soft)}.record-list span{color:var(--muted);font-size:13px;line-height:1.45}.pair-code{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;margin-top:20px;padding:15px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft)}.pair-code strong{overflow-wrap:anywhere;font-family:ui-monospace,monospace;font-size:22px;letter-spacing:.08em}.pair-code button{display:grid;width:38px;height:38px;place-items:center;border:0;border-radius:8px;color:var(--blue);background:var(--blue-soft);cursor:pointer}.pair-code small{grid-column:1 / -1;color:var(--muted)}.table-panel{width:100%;overflow-x:auto;padding:0}table{width:100%;border-collapse:collapse;font-size:14px}th,td{padding:15px 17px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}th{color:var(--muted);background:var(--surface-soft);font-size:11px;letter-spacing:.07em;text-transform:uppercase;white-space:nowrap}td{color:var(--text)}tbody tr:last-child td{border-bottom:0}.empty-state{display:grid;min-height:150px;place-content:center;gap:7px;padding:28px;text-align:center}.empty-state strong{font-size:18px}.empty-state span{max-width:480px;color:var(--muted);line-height:1.5}@media(max-width:1050px){.metric-grid,.compact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.card-grid,.form-row.three,.two-columns{grid-template-columns:1fr}}@media(max-width:760px){.sidebar{position:relative;inset:auto;display:grid;width:100%;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:16px;border-right:0;border-bottom:1px solid rgba(255,255,255,.07)}.logo{padding:0}.logo>span{width:38px;height:38px;flex-basis:38px;border-radius:11px}.theme-toggle{grid-column:2;grid-row:1;margin-top:0;align-self:center;min-height:38px;padding:8px 10px;font-size:13px}.sidebar nav{grid-column:1 / -1;grid-row:2;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.sidebar nav a{flex-direction:column;justify-content:center;gap:4px;min-width:0;min-height:52px;padding:7px 4px;font-size:12px}.sidebar nav a:hover{transform:none}.sidebar nav svg{width:17px;height:17px;flex:0 0 17px}.sidebar-user{grid-column:1 / -1;grid-row:3;grid-template-columns:34px minmax(0,1fr) auto;margin-top:0;padding:11px 2px 0}.avatar{width:34px;height:34px}.user-copy strong{font-size:13px}.logout-button{grid-column:3;width:auto;margin:0;padding:7px 9px;border:1px solid rgba(255,255,255,.1)}.content{margin-left:0;padding:29px 17px 50px}.page-header{gap:18px;margin-bottom:26px}.page-header:not(.project-head){flex-direction:column}.page-header:not(.project-head) .primary.compact{align-self:stretch}.metric-grid{grid-template-columns:1fr}.compact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metric{padding:19px}.metric-icon{margin-bottom:16px}.welcome-panel{align-items:flex-start}.orbit{display:none}.tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.tabs button{min-width:0;white-space:normal;line-height:1.25}.tabs button:last-child{grid-column:1 / -1}.panel-title{flex-direction:column}.panel-title .secondary{width:100%}.form-row{grid-template-columns:1fr}.entity-card{grid-template-columns:44px minmax(0,1fr) auto;gap:12px;padding:17px}.entity-icon{width:44px;height:44px}.entity-actions{grid-column:2 / -1;grid-template-columns:auto auto;align-items:center;justify-self:stretch;justify-content:space-between}.modal-backdrop{align-items:start;padding:12px}.modal{max-height:calc(100vh - 24px)}.chart-panel{min-height:380px;padding-inline:8px}.chart-panel h2{padding-inline:13px}.table-panel:has(tbody tr){overflow:visible;border:0;background:transparent;box-shadow:none}.table-panel:has(tbody tr) table,.table-panel:has(tbody tr) tbody,.table-panel:has(tbody tr) tr,.table-panel:has(tbody tr) td{display:block;width:100%}.table-panel:has(tbody tr) thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.table-panel:has(tbody tr) tbody{display:grid;gap:12px}.table-panel:has(tbody tr) tr{overflow:hidden;border:1px solid var(--line);border-radius:13px;background:var(--surface);box-shadow:var(--shadow-sm)}.table-panel:has(tbody tr) td{display:grid;grid-template-columns:minmax(90px,36%) minmax(0,1fr);gap:12px;padding:12px 15px;overflow-wrap:anywhere;text-align:right}.table-panel:has(tbody tr) td:before{content:attr(data-label);color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.06em;text-align:left;text-transform:uppercase}.table-panel:has(tbody tr) td>*{justify-self:end}}@media(max-width:440px){.auth-shell{padding:13px}.auth-card{padding:24px 20px;border-radius:17px}.auth-top{gap:10px;margin-bottom:34px}.auth-card .theme-toggle{padding:8px}.auth-card .theme-toggle span{font-size:12px}.logo small{letter-spacing:.08em}.logout-button{gap:5px;font-size:12px}.user-copy small{font-size:10px}.project-head{align-items:flex-start}.project-head .status{margin-top:5px}.compact-grid{grid-template-columns:1fr}.range-buttons{justify-content:stretch}.range-buttons button{flex:1}.entity-card{grid-template-columns:42px minmax(0,1fr)}.entity-card>.status,.entity-card>.card-arrow{grid-column:2;justify-self:start}}
