@font-face{font-family:Inter;src:local("Inter");font-display:swap}:root{font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif;color:#202b34;background:#f7f8fa;font-synthesis:none;font-size:14px;line-height:1.55;--blue:#215c9b;--line:#dde3e9;--muted:#596774;--surface:#fff}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,.button{border:1px solid #cad3dc;border-radius:6px;background:#fff;color:#263442;padding:8px 13px;cursor:pointer;text-decoration:none;font-weight:500}button:hover,.button:hover{background:#f1f5f9;border-color:#95a8bb}button:disabled{opacity:.45;cursor:default}.primary{background:var(--blue);color:#fff;border-color:var(--blue)}.primary:hover{background:#174c83;border-color:#174c83}.quiet{background:transparent;border-color:transparent}.danger{color:#aa3036}.danger:hover{background:#fff0f0;border-color:#efc7c9}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #9ac8f4;outline-offset:2px}input,select,textarea{border:1px solid #cbd4dd;border-radius:6px;background:#fff;color:#202b34;padding:9px 11px;min-width:0}input::placeholder,textarea::placeholder{color:#687583}textarea{resize:vertical;line-height:1.7;min-height:92px}input,textarea{caret-color:var(--blue)}::selection{background:#cfe3f6;color:#173d62}a{color:var(--blue);text-underline-offset:3px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.access-screen{min-height:100svh;display:grid;place-items:center;padding:24px}.access-panel{width:min(100%,440px);padding:40px;background:#fff;border:1px solid var(--line);border-radius:12px}.wordmark{font-weight:750;letter-spacing:.025em;color:#284a69;font-size:17px}.access-panel h1{font-size:28px;margin:26px 0 12px}.access-panel p{color:var(--muted);margin:0 0 28px}.access-panel .button{display:block;text-align:center}.topbar{height:64px;display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--line);padding:0 26px;position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:22px;font-weight:600}.brand>span+span{padding-left:22px;border-left:1px solid var(--line)}.account{display:flex;gap:19px;align-items:center}.account #connection{font-size:12px;color:#29664f}.layout{display:grid;grid-template-columns:222px minmax(0,1fr);min-height:calc(100svh - 64px)}.sidebar{padding:25px 14px;background:#f1f4f7;border-right:1px solid var(--line)}.nav-group{margin-bottom:21px}.nav-group h2{font-size:12px;color:var(--muted);font-weight:500;margin:0 12px 7px}.nav-item{width:100%;display:flex;justify-content:space-between;align-items:center;border:0;background:transparent;border-radius:5px;padding:9px 12px;margin:2px 0;text-align:left;gap:10px}.nav-item[aria-current=page]{background:#e0eaf5;color:#174f86;font-weight:600}.nav-item .count{color:#637587;font-variant-numeric:tabular-nums;font-size:12px;font-weight:400}.content{padding:31px 34px 24px;min-width:0;max-width:2000px}.page-heading{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:24px}h1{font-size:25px;line-height:1.3;letter-spacing:-.025em;margin:0;font-weight:650}.page-heading p{color:var(--muted);margin:8px 0 0;font-size:13px}.toolbar{display:flex;gap:9px;align-items:center}.toolbar input{width:min(100%,470px)}.status{min-height:22px;margin:12px 0;color:var(--muted);font-size:13px}.status.error{color:#a72b34}.status.success{color:#25684c}.table-scroll{overflow:auto;border:1px solid var(--line);border-radius:8px;background:#fff;min-height:170px}table{border-collapse:collapse;width:100%;text-align:left;font-size:13px}th{background:#f8fafb;color:#52616e;font-weight:550;white-space:nowrap;border-bottom:1px solid var(--line);padding:12px 15px;position:sticky;top:0}td{padding:12px 15px;border-bottom:1px solid #edf0f3;max-width:310px;vertical-align:top;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#f6f9fd}.row-link{border:0;padding:0;background:transparent!important;color:#1c5790;font-weight:550;max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}.empty{padding:65px 25px;color:var(--muted);text-align:center}.pagination{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:18px;font-size:12px;color:var(--muted)}.pagination>div{display:flex;gap:8px}.mobile-menu{display:none}dialog{color:#202b34;border:0;padding:0;background:#fff;max-width:calc(100vw - 28px);box-shadow:0 14px 50px #182c4640}dialog::backdrop{background:#18283a50}.drawer{position:fixed;inset:0 0 0 auto;margin:0;width:590px;height:100svh;max-height:100svh;border-radius:0;max-width:100vw}.drawer[open]{display:flex;flex-direction:column}.drawer-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:23px 26px;border-bottom:1px solid var(--line)}h2{font-size:20px;font-weight:650;letter-spacing:-.02em;margin:0}.drawer-heading p{color:var(--muted);font-size:12px;margin:0 0 4px}.drawer-body{padding:6px 26px 25px;overflow:auto;flex:1}.drawer-actions{padding:15px 23px;border-top:1px solid var(--line);display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:#fbfcfd}.drawer-actions span{margin-left:auto;color:var(--muted);font-size:12px}.tabs{display:flex;border-bottom:1px solid var(--line);margin:10px 0 22px;gap:18px}.tabs button{padding:9px 0;border:0;border-radius:0;font-weight:500;color:var(--muted)}.tabs button[aria-selected=true]{color:var(--blue);box-shadow:0 2px 0 var(--blue)}fieldset{border:0;padding:0;margin:0;min-width:0}.field{margin-bottom:21px}.field>label,.field-label,#weekly-editor>label{display:block;font-size:13px;font-weight:550;margin:0 0 7px}.required{color:#a72b34;margin-left:4px}.field>input,.field>select,.field>textarea{width:100%}.field-note{font-size:12px;color:var(--muted);margin:6px 0}.readonly-value{background:#f6f8fa;border:1px solid #e5e9ee;border-radius:5px;padding:9px 11px;color:#556370;white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;max-height:180px;overflow:auto}.checkbox-field{display:flex;align-items:center;gap:10px}.checkbox-field input{width:17px;height:17px;accent-color:var(--blue)}.checkbox-field label{margin:0}.tokens{display:flex;flex-wrap:wrap;gap:7px;margin:8px 0}.token{border:1px solid #d4e0ec;border-radius:5px;display:inline-flex;align-items:center;gap:8px;background:#f3f7fb;padding:4px 8px;max-width:100%;font-size:12px}.token span,.token a{overflow:hidden;text-overflow:ellipsis;max-width:350px;white-space:nowrap}.token button{padding:0 2px;border:0;background:transparent;font-size:12px}.record-info{border-top:1px solid var(--line);padding-top:15px;margin-top:26px;color:var(--muted);font-size:12px}.record-info summary{cursor:pointer}.record-info dl{display:grid;grid-template-columns:80px 1fr;gap:9px 12px}.record-info dt,.record-info dd{margin:0;overflow-wrap:anywhere}.record-info dd{font-variant-numeric:tabular-nums}#weekly-editor select,#weekly-editor textarea{width:100%;margin-bottom:19px}.review-dialog{width:760px;border-radius:10px;padding:26px;max-height:90svh;overflow:auto}.review-dialog header{margin-bottom:22px}.review-dialog header p{color:var(--muted);font-size:13px;margin:7px 0 0}.review-dialog>label{display:block;margin:22px 0 7px;font-size:13px}.review-dialog>textarea{width:100%}.review-dialog footer{display:flex;justify-content:flex-end;gap:10px;margin-top:23px}.optional{color:var(--muted);font-weight:400}.diff-item{border-bottom:1px solid var(--line);padding:0 0 17px;margin:0 0 19px}.diff-item h3{font-size:13px;margin:0 0 9px;font-weight:600}.diff-values{display:grid;grid-template-columns:1fr 1fr;gap:12px}.diff-values small{color:var(--muted);display:block;margin-bottom:5px}.diff-values pre{font:inherit;font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere;max-height:220px;overflow:auto;background:#f5f7f9;border-radius:5px;padding:10px;margin:0;min-height:42px}.diff-values .after pre{background:#edf5fc;color:#194e7c}.relation-choices{max-height:44svh;overflow:auto;border-block:1px solid var(--line);margin-top:17px}.relation-choice{display:flex;gap:11px;align-items:center;padding:11px 6px;border-bottom:1px solid #edf0f3;cursor:pointer}.relation-choice input{accent-color:var(--blue);width:16px;height:16px;flex:none}.relation-choice:last-child{border-bottom:0}.relation-choice span{overflow-wrap:anywhere}.field-search{width:100%;margin-bottom:20px}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:#c4ced8;border:2px solid white;border-radius:7px}::-webkit-scrollbar-track{background:#f5f7f9}@media(max-width:1050px){.content{padding:25px 22px}.layout{grid-template-columns:194px minmax(0,1fr)}.sidebar{padding-inline:9px}.topbar{padding-inline:20px}.account{gap:12px}.account #connection{display:none}}@media(max-width:700px){.topbar{height:58px;padding-inline:13px;gap:8px}.brand{gap:10px}.brand .wordmark{display:none}.brand>span+span{border:0;padding:0;font-size:14px}.account{gap:4px;font-size:12px}.account button{padding:6px 7px}.mobile-menu{display:block;font-size:12px;padding:6px}.layout{display:block;min-height:calc(100svh - 58px)}.sidebar{display:none;position:fixed;inset:58px 0 0;width:min(85vw,280px);z-index:20;overflow:auto;border-right:1px solid #bccbd8;box-shadow:15px 5px 30px #24334420}.sidebar.open{display:block}.content{padding:23px 15px}.page-heading{margin-bottom:19px;align-items:flex-start}h1{font-size:22px}.page-heading p{max-width:220px;font-size:12px}.page-heading>button{font-size:12px;white-space:nowrap;padding:7px 9px}.toolbar{gap:6px}.toolbar input{width:100%;font-size:13px}.toolbar button{padding:8px 10px;white-space:nowrap;font-size:12px}.toolbar .quiet{padding-inline:7px}.drawer-heading{padding:19px 17px}.drawer-body{padding-inline:17px}.drawer-actions{padding:12px 15px;gap:7px}.drawer-actions span{font-size:11px}.drawer-actions button{font-size:12px}.review-dialog{padding:20px 17px;max-height:94svh}.diff-values{grid-template-columns:1fr}.diff-values pre{max-height:160px}.token span,.token a{max-width:230px}.access-panel{padding:30px 26px}th,td{padding:11px 12px}}.home{min-width:0;padding:28px 32px 35px}.home-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:20px}.home-heading p{font-size:12px;color:var(--muted);margin:7px 0 0}.home-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.ship-hero{background:#071724;color:#d6e7f3;border-radius:10px;overflow:hidden;display:grid;grid-template-columns:minmax(250px,.42fr) minmax(0,1fr);grid-template-rows:auto 1fr auto;margin-bottom:18px}.ship-bar{grid-column:1;grid-row:1;display:flex;flex-direction:column;gap:8px;padding:27px 30px 0;font-size:12px;color:#9ab2c5}.ship-bar>span:first-child{color:#e4edf5;letter-spacing:.1em;font-weight:650;font-size:15px}.ship-canvas{grid-column:2;grid-row:1/4;height:clamp(245px,35svh,370px);width:100%;position:relative;min-width:0}.ship-canvas canvas{display:block;width:100%;height:100%;touch-action:pan-y}.ship-legend{grid-column:1;grid-row:2;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:center;gap:17px 15px;padding:18px 30px}.ship-legend>div{display:flex;flex-direction:column;gap:3px}.ship-legend span{font-size:12px;color:#afc3d4;display:flex;align-items:center;gap:7px;white-space:nowrap}.ship-legend span:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--domain-color)}.ship-legend strong{font-weight:500;font-size:23px;font-variant-numeric:tabular-nums;color:#e6f0f8}.ship-footer{grid-column:1;grid-row:3;display:flex;justify-content:space-between;align-items:center;gap:6px;padding:0 23px 19px 30px;color:#9bb2c6;font-size:11px}.ship-footer button{color:#bfd4e4;font-size:12px;padding:5px 8px;white-space:nowrap}.ship-footer button:hover{background:#173148;border-color:#416178}.model-fallback{position:absolute;inset:40% 20px auto;text-align:center;color:#afc3d4}.home-metrics{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--line);margin:8px 0 24px}.home-metric{border:0;background:transparent;text-align:left;border-radius:0;padding:12px 15px 17px;display:flex;flex-direction:column;gap:4px}.home-metric:first-child{padding-left:0}.home-metric span{font-size:12px;color:var(--muted)}.home-metric strong{font-size:25px;color:#244a6b;font-weight:550;font-variant-numeric:tabular-nums}.chart-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:23px}.chart-section{background:#fff;border:1px solid var(--line);border-radius:8px;padding:20px 21px 13px;min-width:0}.chart-section h2{font-size:17px;font-weight:600;margin-bottom:14px}.chart-section.wide{grid-column:1/-1}.chart-canvas{height:280px;width:100%}.chart-source{font-size:11px;color:var(--muted);margin-top:10px;border-top:1px solid #edf0f3;padding-top:10px}.chart-source summary{cursor:pointer}.chart-source p{line-height:1.7}.chart-source table{font-size:11px}.chart-source th,.chart-source td{padding:7px 10px;position:static}.dashboard-note{color:var(--muted);font-size:12px;margin:23px 0 0}.overview-table>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.overview-table h2{margin-bottom:2px}.overview-table p{font-size:12px;margin:0;color:var(--muted)}.overview-table-scroll{overflow:auto;border-top:1px solid var(--line);min-width:0}.overview-table-scroll th,.overview-table-scroll td{padding:9px 12px;max-width:260px}.overview-table .empty{padding:28px 12px}.layout-dialog{width:760px}.layout-dialog header{margin-bottom:16px}.layout-toggles{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:16px}.layout-check{display:flex;align-items:center;gap:7px;font-size:13px;line-height:1.35;cursor:pointer}.layout-check input{width:16px;height:16px;flex:none;margin:0;accent-color:var(--blue)}.layout-modules h3{font-size:14px;font-weight:600;margin:0 0 8px}.layout-module{border:1px solid var(--line);border-radius:6px;margin-bottom:8px;padding:8px 12px}.layout-module-bar{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:13px}.layout-module-bar strong{overflow-wrap:anywhere}.layout-module-actions{display:flex;flex:none;gap:2px}.layout-module-actions button{padding:5px 7px;font-size:12px;color:var(--muted)}.layout-table-fields{border-top:1px solid #edf0f3;padding-top:12px;margin-top:6px}.layout-input-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:8px 12px;margin:0 0 10px}.layout-field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted);min-width:0}.layout-field input,.layout-field select{width:100%;padding:7px 9px;font-size:13px}.layout-column-set{margin:8px 0 12px}.layout-column-set legend{font-size:12px;color:var(--muted);margin-bottom:7px}.layout-column-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:9px;padding:10px;background:#f6f8fa;border-radius:6px;max-height:175px;overflow:auto}.layout-add{display:flex;gap:8px;align-items:center;margin-top:12px}.layout-add select{max-width:100%;min-width:120px}.layout-add button{white-space:nowrap}.layout-dialog .status:empty{display:none}.layout-dialog .layout-actions{position:sticky;bottom:-26px;background:#fff;padding:12px 0 4px;margin-top:12px;border-top:1px solid var(--line)}.layout-actions .quiet{margin-right:auto;color:var(--muted)}@media(max-width:1100px){.home{padding:24px 22px}.ship-hero{grid-template-columns:minmax(228px,.45fr) minmax(0,1fr)}.ship-bar,.ship-legend{padding-inline:21px}.ship-footer{padding-inline:21px 12px}.chart-section{padding:18px 15px 12px}}@media(max-width:700px){.home{padding:21px 15px}.home-heading{margin-bottom:16px;gap:8px}.home-heading button{font-size:12px;padding:7px 9px;white-space:nowrap}.home-heading p{font-size:10px}.home-actions{gap:5px}.ship-hero{display:flex;flex-direction:column}.ship-bar{flex-direction:row;justify-content:space-between;align-items:center;gap:8px;padding:17px 16px 0;font-size:10px}.ship-bar>span:first-child{font-size:12px}.ship-canvas{height:clamp(158px,43vw,220px)}.ship-legend{grid-template-columns:1fr 1fr;gap:9px 12px;padding:0 17px 10px}.ship-legend strong{font-size:18px}.ship-legend span{font-size:11px}.ship-footer{padding:0 13px 12px 17px}.home-metrics{grid-template-columns:repeat(2,1fr);margin-bottom:19px}.home-metric,.home-metric:first-child{padding:10px 10px 12px}.home-metric strong{font-size:22px}.chart-grid{grid-template-columns:minmax(0,1fr);gap:16px}.chart-section.wide{grid-column:auto}.chart-canvas{height:255px}.chart-section{padding:17px 11px 11px}.layout-dialog .layout-actions{bottom:-20px}.layout-module{padding:7px 8px}.layout-module-actions button{padding:5px}.layout-column-options{grid-template-columns:repeat(2,minmax(0,1fr))}.layout-add button,.layout-actions button{font-size:12px;padding:8px 10px}}@media(prefers-reduced-motion:no-preference){dialog[open]{animation:appear .15s ease-out}@keyframes appear{0%{opacity:.6;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}}
