:root{color:#192033;--font-ui:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;--font-code:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--text-body:14px;--text-control:13px;--text-small:12px;--text-caption:11px;font-family:var(--font-ui);font-size:var(--text-body);font-synthesis:none;text-rendering:optimizelegibility;--ink:#192033;--muted:#687086;--line:#dfe3ec;--soft:#f7f8fb;--panel:#fff;--navy:#101522;--blue:#3557e0;--blue-dark:#2543bd;--cyan:#15a8b8;--green:#17815f;--amber:#a56008;--red:#c43e46;--shadow:0 16px 45px #141c3314;background:#f3f5f9;line-height:1.5}*{box-sizing:border-box}html{background:var(--soft);min-width:320px;min-height:100%}body{background:var(--soft);min-width:320px;min-height:100vh;margin:0}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.58}a{color:inherit}:focus-visible{outline-offset:2px;outline:3px solid #3557e04d}.skip-link{z-index:1000;color:#fff;background:var(--blue);font:inherit;cursor:pointer;border:0;border-radius:8px;padding:10px 14px;position:fixed;top:10px;left:10px;transform:translateY(-80px)}.skip-link:focus{transform:none}.app-shell{min-height:100vh}.sidebar{z-index:40;color:#d8deee;background:var(--navy);border-right:1px solid #252c3b;flex-direction:column;width:260px;max-width:calc(100vw - 48px);height:100dvh;padding:24px 16px 16px;display:flex;position:fixed;inset:0 auto 0 0}.sidebar-brand,.auth-brand{align-items:center;gap:12px;display:flex}.brand-mark{color:#cbd4ff;letter-spacing:.04em;background:#263459;border:1px solid #5264bd;border-radius:11px;flex:0 0 42px;place-items:center;height:42px;font-weight:700;display:grid}.sidebar-brand>span:last-child,.auth-brand>span:last-child{flex-direction:column;gap:2px;display:flex}.sidebar-brand b,.auth-brand b{color:#fff;letter-spacing:.12em;font-size:15px}.sidebar-brand small,.auth-brand small{color:#a4aec4;font-size:var(--text-caption);letter-spacing:.06em;font-weight:500}.sidebar-brand{flex-shrink:0;padding:0 8px}.sidebar nav{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#46526e transparent;flex:1;min-height:0;margin:18px -4px 10px 0;padding-right:4px;overflow-y:auto}.nav-group+.nav-group{border-top:1px solid #2b3447;margin-top:10px;padding-top:10px}.nav-section{color:#aab6d0;font-size:var(--text-small);letter-spacing:.04em;margin:0 12px 6px;font-weight:600}.sidebar nav a{color:#d0d7e8;border:1px solid #0000;border-radius:8px;align-items:center;gap:12px;min-height:48px;margin:2px 0;padding:6px 12px;text-decoration:none;transition:color .16s,background-color .16s,border-color .16s;display:flex;position:relative}.sidebar nav a:hover{color:#eef1fa;background:#ffffff0b}.sidebar nav a.active{color:#fff;background:#263b70;border-color:#536cab}.sidebar nav a.active:before{content:"";background:#a7bdff;border-radius:2px;width:3px;position:absolute;inset:12px auto 12px 0}.sidebar nav a .nav-icon{color:#a9b9dc;flex:0 0 24px;place-items:center;height:24px;display:grid}.sidebar nav a.active .nav-icon{color:#d4e0ff}.sidebar nav a>span:last-child{flex-direction:column;gap:1px;min-width:0;display:flex}.sidebar nav a b{font-size:var(--text-body);font-weight:600}.sidebar nav a small{color:#9eabc7;font-size:var(--text-caption)}.sidebar nav a.active small{color:#c5d4f3}.sidebar-footer{flex-shrink:0;margin-top:auto}.connection{color:#a3afc7;font-size:var(--text-small);border-top:1px solid #293042;align-items:center;gap:8px;padding:10px 12px;display:flex}.connection i{border-radius:50%;width:7px;height:7px}.connection i.online{background:#48d3a1;box-shadow:0 0 8px #48d3a199}.connection i.offline{background:#e76f75}.user-card{background:#ffffff09;border:1px solid #293246;border-radius:10px;align-items:center;gap:10px;padding:8px 10px;display:flex}.user-card>span{color:#dbe1ff;background:#303b59;border-radius:9px;flex:0 0 32px;place-items:center;height:32px;font-size:12px;font-weight:700;display:grid}.user-card div{flex-direction:column;min-width:0;display:flex}.user-card b{color:#e9ecf5;font-size:var(--text-small);text-overflow:ellipsis;font-weight:500;overflow:hidden}.user-card small{color:#a3afc7;font-size:var(--text-caption);margin-top:2px}.logout-button{color:#a3afc7;width:100%;min-height:36px;font-size:var(--text-small);background:0 0;border:0;margin-top:6px;padding:8px}.logout-button:hover{color:#d6dbe8}.workspace{min-height:100vh;margin-left:260px}.topbar{z-index:20;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffe6;align-items:center;min-height:66px;padding:0 34px;display:flex;position:sticky;top:0}.topbar>div{flex-direction:column;display:flex}.topbar>div span{font-size:var(--text-body);font-weight:600}.topbar>div small{color:var(--muted);font-size:var(--text-small)}.role-chip{font-size:var(--text-caption);border-radius:6px;margin-left:auto;padding:7px 10px;font-weight:600}.role-chip.admin{color:#2349c4;background:#e9edff;border:1px solid #cdd5ff}.role-chip.viewer{color:#586074;background:#f1f2f5;border:1px solid #dddfe6}.role-short{display:none}.menu-button{color:var(--ink);background:0 0;border:0;margin-right:12px;padding:8px;display:none}.content{width:min(1440px,100%);margin:0 auto;padding:44px 42px 80px}.content:focus{outline:none}.page-header{justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:28px;display:flex}.page-header .eyebrow,.auth-card .eyebrow,.modal .eyebrow{color:var(--blue);font-size:var(--text-caption);letter-spacing:.06em;margin:0 0 8px;font-weight:600}.page-header h1{color:#141a2a;letter-spacing:-.035em;margin:0;font-size:clamp(28px,3vw,38px)}.page-header>div>p:last-child{max-width:660px;color:var(--muted);margin:10px 0 0;font-size:13px;line-height:1.7}.button{min-height:40px;font-size:var(--text-control);border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;padding:0 15px;font-weight:600;transition:all .14s;display:inline-flex}.button.primary{color:#fff;background:var(--blue);box-shadow:0 6px 16px #3557e02e}.button.primary:hover{background:var(--blue-dark)}.button.secondary{color:#424b61;background:#fff;border-color:#d9deea}.button.secondary:hover{color:var(--blue);border-color:#aebbf5}.button.danger{color:#fff;background:var(--red)}.button.full{width:100%}.text-button{color:var(--blue);font-size:var(--text-small);white-space:nowrap;background:0 0;border:0;padding:5px 2px;font-weight:600}.danger-text{color:var(--red)}.icon-button{color:#778096;background:0 0;border:1px solid #e1e5ee;border-radius:8px;width:34px;height:34px;font-size:20px;line-height:1}.table-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 4px 20px #171f3509}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:var(--text-control);font-variant-numeric:tabular-nums}th{color:#596378;border-bottom:1px solid var(--line);font-size:var(--text-small);text-align:left;white-space:nowrap;background:#f8f9fb;padding:13px 16px;font-weight:600}td{color:#4e566b;vertical-align:middle;border-bottom:1px solid #eceef3;min-width:90px;padding:15px 16px}tbody tr:last-child td{border-bottom:0}tbody tr:hover td{background:#fbfcff}td strong{color:#20273a;white-space:nowrap;font-size:12px;font-weight:650;display:block}td small{color:#8b93a6;margin-top:4px;font-size:10px;display:block}.mono,code,pre{font-family:var(--font-code)}.url-cell{color:#52607b;text-overflow:ellipsis;white-space:nowrap;max-width:320px;text-decoration:none;display:block;overflow:hidden}.url-cell:hover{color:var(--blue);text-decoration:underline}.actions-column{text-align:right;min-width:170px}.row-actions{text-align:right;white-space:nowrap;min-width:170px}.row-actions .text-button+.text-button{margin-left:10px}.badge{font-size:var(--text-caption);border-radius:20px;align-items:center;gap:6px;padding:5px 8px;font-weight:600;display:inline-flex}.badge i{background:currentColor;border-radius:50%;width:5px;height:5px}.badge-positive{color:#147554;background:#e7f7f0}.badge-warning{color:#9a5c08;background:#fff3dd}.badge-neutral{color:#536079;background:#edf0f5}.badge-muted{color:#7d8495;background:#f0f1f4}.tag-list{flex-wrap:wrap;gap:4px;min-width:140px;display:flex}.tag-list span{color:#59637b;font-size:var(--text-small);background:#eef1f7;border-radius:4px;padding:3px 6px}.pagination{color:#777f92;border-top:1px solid var(--line);justify-content:flex-end;align-items:center;gap:16px;padding:12px 16px;font-size:11px;display:flex}.pagination .button{min-height:32px}.toolbar{justify-content:space-between;align-items:flex-end;gap:16px;margin:-4px 0 18px;display:flex}.toolbar label{color:#757e92;flex-direction:column;gap:6px;font-size:10px;display:flex}.toolbar select{min-width:260px}.notice{border:1px solid;border-radius:8px;justify-content:space-between;align-items:center;gap:14px;margin:0 0 18px;padding:12px 14px;font-size:12px;line-height:1.5;display:flex}.notice-error{color:#8f2e34;background:#fff3f3;border-color:#f3c9cc}.notice-success{color:#12684c;background:#ecf9f3;border-color:#bfe8d6}.notice-warning{color:#86520a;background:#fff7e8;border-color:#f0d6a5}.cost-workbench{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:20px;margin-bottom:28px;display:grid}.cost-panel{border:1px solid var(--border,#e1e6ec);background:#fff;border-radius:12px;min-width:0;padding:22px}.cost-panel h2{margin-top:0;font-size:18px}.cost-panel p{overflow-wrap:anywhere;font-size:13px;line-height:1.6}.cost-panel fieldset{border:0;min-width:0;margin:0;padding:0}.cost-detail{margin-top:20px}.cost-schema{overflow-wrap:anywhere;margin:12px 0;font-size:12px;display:block}.cost-actions{flex-wrap:wrap;gap:8px;display:flex}.report-controls{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;margin:-4px 0 18px;display:flex}.report-controls>label{color:#757e92;flex-direction:column;flex:0 0 180px;gap:6px;font-size:10px;display:flex}.report-calendar{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:14px;display:flex}.report-calendar label{flex-direction:column;gap:6px;display:flex}.report-calendar span,.report-mode-note{color:#757e92;font-size:12px;line-height:1.6}.report-mode-note{margin:0 0 14px}.report-tabs{background:#e9edf5;border-radius:10px;gap:4px;max-width:100%;padding:4px;display:flex;overflow-x:auto}.report-tabs button{color:#697188;white-space:nowrap;background:0 0;border:0;border-radius:7px;min-height:34px;padding:0 13px;font-size:11px;font-weight:650}.report-tabs button.active{color:#243fa9;background:#fff;box-shadow:0 2px 8px #1e2a4a1f}.report-content{transition:opacity .14s}.report-content.updating{opacity:.62}.report-context{color:#626d82;font-size:var(--text-small);justify-content:space-between;gap:16px;margin-bottom:12px;display:flex}.metric-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,130px),1fr));gap:10px;margin-bottom:18px;display:grid}.metric-grid article{border:1px solid var(--line);background:#fff;border-radius:10px;min-width:0;padding:15px;box-shadow:0 3px 14px #171f3508}.metric-grid span{color:#626d82;font-size:var(--text-small);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.metric-grid strong{color:#1c2437;letter-spacing:-.02em;text-overflow:ellipsis;white-space:nowrap;margin-top:9px;font-size:16px;display:block;overflow:hidden}.report-table td:first-child{min-width:190px}.numeric{text-align:right;white-space:nowrap}.global-notice{z-index:100;width:min(420px,100% - 32px);position:fixed;top:16px;right:16px}.empty-state{text-align:center;background:#fff;border:1px dashed #ced4e0;border-radius:12px;justify-items:center;min-height:360px;padding:72px 24px;display:grid}.empty-state>span{width:50px;height:50px;color:var(--blue);background:#edf0ff;border-radius:14px;place-items:center;font-size:24px;display:grid}.empty-state h2{margin:18px 0 6px;font-size:17px}.empty-state p{max-width:420px;color:var(--muted);margin:0 0 20px;font-size:12px}.loading{min-height:220px;color:var(--muted);justify-content:center;align-items:center;gap:10px;font-size:12px;display:flex}.spinner{border:2px solid #d8ddeb;border-top-color:var(--blue);border-radius:50%;width:17px;height:17px;animation:.75s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.modal-open{overflow:hidden}.modal-backdrop{z-index:80;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#080c1594;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal{background:#fff;border:1px solid #d9deea;border-radius:14px;width:min(520px,100%);max-height:calc(100vh - 48px);overflow:hidden auto;box-shadow:0 30px 80px #070c1a47}.modal-wide{width:min(850px,100%)}.modal-extra-wide{width:min(1080px,100%)}.optimizer-decision-table table{min-width:940px}.modal-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:20px;padding:22px 24px 18px;display:flex}.modal-header h2{letter-spacing:-.02em;margin:0;font-size:20px}.modal-header>div>p:last-child:not(.eyebrow){color:var(--muted);margin:7px 0 0;font-size:11px;line-height:1.55}.modal-body{gap:18px;padding:22px 24px;display:grid}.modal-actions{border-top:1px solid var(--line);background:#fafbfc;justify-content:flex-end;align-items:center;gap:10px;padding:15px 24px;display:flex}.form-grid{grid-template-columns:1fr 1fr;gap:18px;display:grid}.field{color:#3c4458;font-size:var(--text-control);flex-direction:column;gap:7px;font-weight:600;display:flex}.field small,fieldset legend small{color:#687086;font-size:var(--text-small);font-weight:400;line-height:1.5}input,textarea,select{color:#20273a;background:#fff;border:1px solid #d5dae5;border-radius:7px;width:100%;transition:all .12s}input,select{min-height:39px;padding:0 11px}textarea{resize:vertical;padding:10px 11px;line-height:1.5}input:hover,textarea:hover,select:hover{border-color:#bac2d3}input:focus,textarea:focus,select:focus{border-color:#7187e7;outline:0;box-shadow:0 0 0 3px #3557e01a}input:disabled,textarea:disabled,select:disabled{color:#81899b;background:#f2f3f6}input[type=checkbox]{width:16px;min-height:16px;accent-color:var(--blue);padding:0}.switch-row{background:#f7f8fb;border:1px solid #e1e5ed;border-radius:8px;justify-content:space-between;align-items:center;gap:20px;padding:14px;display:flex}.switch-row span{flex-direction:column;gap:3px;display:flex}.switch-row b{font-size:var(--text-control)}.switch-row small{color:var(--muted);font-size:var(--text-small)}.switch-row input{flex:none}fieldset{border:1px solid #dfe3ec;border-radius:9px;min-width:0;margin:0;padding:15px}fieldset legend{color:#343c50;padding:0 5px;font-size:11px;font-weight:650}.check-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.check-grid label{background:#f7f8fb;border-radius:7px;align-items:center;gap:8px;padding:10px;font-size:11px;display:flex}.check-grid label small{color:#687086;font-size:var(--text-caption);margin-left:auto}.destination-filter{color:#5d667b;gap:6px;margin-bottom:8px;font-size:9px;display:grid}.destination-filter input{min-height:34px}.destination-summary{color:var(--muted);margin:0 0 8px;font-size:9px}.destination-list{gap:6px;max-height:250px;padding-right:2px;display:grid;overflow-y:auto}.destination-row{background:#f8f9fb;border:1px solid #0000;border-radius:7px;justify-content:space-between;align-items:center;gap:14px;padding:9px 10px;display:flex}.destination-row.selected{background:#f3f5ff;border-color:#d6dcfb}.destination-row label{align-items:center;gap:9px;min-width:0;display:flex}.destination-row label span{flex-direction:column;min-width:0;display:flex}.destination-row label b{text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:600;overflow:hidden}.destination-row label small{color:#8b93a4;font-size:8px}.destination-row>input{width:120px;min-height:32px}.fieldset-empty{color:var(--muted);margin:4px 0;font-size:10px}.field-warning{color:#925907;background:#fff5df;border-radius:7px;margin:-5px 0 0;padding:10px 12px;font-size:10px}.secret-box{background:#111724;border-radius:8px;gap:6px;padding:14px;display:grid}.secret-box span{color:#808ba4;font-size:10px}.secret-box code{overflow-wrap:anywhere;color:#9de4c9;font:var(--text-control)/1.7 var(--font-code)}.copy-control{align-items:center;gap:10px;display:flex}.copy-error{max-width:260px;color:var(--red);font-size:10px;line-height:1.4}.auth-page{background:radial-gradient(circle at 50% 0,#263354 0,#121827 42%,#0d121e 100%);align-content:center;justify-items:center;min-height:100vh;padding:30px 20px;display:grid}.auth-brand{margin-bottom:24px}.auth-card{background:#fffffffa;border:1px solid #fff3;border-radius:15px;width:min(420px,100%);padding:30px;box-shadow:0 30px 100px #00000047}.auth-card h1{letter-spacing:-.025em;margin:0;font-size:24px}.auth-description{color:var(--muted);margin:9px 0 22px;font-size:11px;line-height:1.65}.auth-form{gap:16px;display:grid}.auth-mode{color:var(--blue);background:0 0;border:0;margin:20px auto 0;font-size:10px;display:block}.auth-footnote{color:#a3afc7;font-size:var(--text-small);margin:18px 0 0}.sidebar-scrim{display:none}@media (width<=1100px){.content{padding:34px 28px 70px}th,td{padding-left:12px;padding-right:12px}}@media (width<=820px){.sidebar{visibility:hidden;transition:transform .2s;transform:translate(-100%)}.sidebar.open{visibility:visible;transform:none}.sidebar-scrim{z-index:35;background:#070b138c;border:0;display:block;position:fixed;inset:0}.workspace{margin-left:0}.menu-button{display:block}.topbar{padding:0 18px}.content{padding:28px 18px 60px}.page-header{align-items:flex-start}.page-header h1{font-size:30px}.form-grid{grid-template-columns:1fr}.check-grid{grid-template-columns:1fr 1fr}.report-controls{flex-direction:column;align-items:stretch}.report-controls>label{flex-basis:auto;width:min(260px,100%)}.metric-grid{grid-template-columns:repeat(2,minmax(120px,1fr))}}@media (width<=560px){.page-header{flex-direction:column}.page-header>.button{width:100%}.role-full{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.role-short{display:inline}.toolbar{flex-direction:column;align-items:stretch}.toolbar select{min-width:0}.modal-backdrop{align-items:end;padding:0}.modal{border-radius:15px 15px 0 0;width:100%;max-height:92vh}.modal-header,.modal-body,.modal-actions{padding-left:18px;padding-right:18px}.modal-actions .button{flex:1}.check-grid{grid-template-columns:1fr}.report-context{flex-direction:column}.metric-grid{grid-template-columns:1fr 1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.integration-notice{color:#44546a;background:#f0f5fa;border-radius:10px;padding:12px 16px;font-size:12px;line-height:1.6}.integration-account-bar{background:#fff;border:1px solid #dce3ec;border-radius:12px;align-items:end;gap:16px;margin:20px 0 28px;padding:18px 20px;display:flex}.integration-account-bar .field{flex:1;min-width:0;max-width:560px;margin:0}.integration-account-bar select{width:100%;min-width:0}.integration-account-count{color:#526277;white-space:nowrap;align-self:center;font-size:12px}.integration-section-heading{justify-content:space-between;align-items:center;gap:16px;margin:20px 0 16px;display:flex}.integration-section-heading h2{overflow-wrap:anywhere;margin:0 0 6px;font-size:18px;line-height:1.4}.integration-section-heading p{color:#526277;margin:0;font-size:13px;line-height:1.6}.integration-section-heading .row-actions{white-space:normal;flex-wrap:wrap;justify-content:flex-end;gap:8px;min-width:0;display:flex}.integration-section-heading .button{flex-shrink:0}.integration-sync-card{margin-bottom:20px;padding:20px}.integration-sync-card p{color:#526277;overflow-wrap:anywhere;font-size:13px;line-height:1.7}.integration-status-grid{border-bottom:1px solid #e5eaf0;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;padding-bottom:18px;display:grid}.integration-status-grid small{color:#526277;margin-bottom:7px;font-size:12px;display:block}.integration-status-grid strong{font-size:15px;font-weight:600}.integration-checkbox{cursor:pointer;align-items:center;gap:10px;margin:16px 0;font-size:13px;display:flex}.integration-checkbox input{flex-shrink:0;width:17px;height:17px}@media (width<=640px){.integration-account-bar{flex-wrap:wrap;padding:16px}.integration-account-bar .field{flex-basis:100%;max-width:none}.integration-section-heading{flex-direction:column;align-items:start}.integration-section-heading .row-actions{justify-content:flex-start;width:100%}.integration-status-grid{grid-template-columns:1fr;gap:14px}.integration-status-grid>div{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.integration-status-grid small{margin:0}.integration-sync-card{padding:16px}}
