:root{--ink:#171812;--muted:#74766c;--line:#e6e4dc;--surface:#fff;--canvas:#f4f3ee;--gold:#b9924a;--gold-soft:#f4ead8;--green:#267257;--red:#a8493e;--sidebar:#171913;--radius:18px}*{box-sizing:border-box}body,html{margin:0;min-height:100%;background:var(--canvas);color:var(--ink)}body{font-family:var(--font-zh),var(--font-latin),system-ui,sans-serif}a{color:inherit;text-decoration:none}button,input{font:inherit}.app-shell{min-height:100vh;display:grid;grid-template-columns:252px 1fr}.sidebar{position:sticky;top:0;height:100vh;padding:26px 18px;background:var(--sidebar);color:#f7f2e7;display:flex;flex-direction:column}.brand{padding:0 10px 24px;border-bottom:1px solid #34372d}.brand-mark{font:700 21px/1 var(--font-latin);letter-spacing:.12em}.brand-sub{margin-top:8px;color:#aaa99f;font-size:12px}.nav{overflow-y:auto;padding:18px 0;display:grid;gap:4px}.nav::-webkit-scrollbar{display:none}.nav{scrollbar-width:none}.nav-link{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:10px;color:#b9baaf;font-size:14px}.nav-link.active,.nav-link:hover{background:#292c23;color:#fff}.nav-link.active{box-shadow:inset 3px 0 var(--gold)}.nav-icon{width:17px;height:17px}.dev-badge{margin-top:auto;border:1px solid #3e4135;border-radius:12px;padding:12px;font-size:12px;color:#c9c8bf}.dev-dot{display:inline-block;width:7px;height:7px;background:#67c592;border-radius:99px;margin-right:7px}.main{min-width:0}.topbar{height:72px;padding:0 34px;background:#ffffffdb;border-bottom:1px solid var(--line);justify-content:space-between;position:sticky;top:0;z-index:5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.environment,.topbar{display:flex;align-items:center}.environment{gap:9px;font-size:13px;color:var(--muted)}.environment strong{background:var(--gold-soft);color:#765a28;padding:5px 9px;border-radius:99px;font-size:11px;letter-spacing:.06em}.user-chip{display:flex;align-items:center;gap:10px;font-size:13px;text-align:right}.avatar{width:34px;height:34px;display:grid;place-items:center;background:var(--ink);color:#fff;border-radius:99px;font-weight:700}.content{padding:32px 34px 56px;max-width:1500px;margin:0 auto}.page-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin-bottom:26px}.eyebrow{color:var(--gold);font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}h1{margin:7px 0 5px;font-size:clamp(27px,4vw,38px);letter-spacing:-.035em}.page-description{margin:0;color:var(--muted);font-size:14px}.periods{display:flex;background:#e9e7df;padding:4px;border-radius:10px}.period{padding:7px 12px;border:0;background:transparent;color:var(--muted);border-radius:7px;cursor:pointer}.period.active{background:#fff;color:var(--ink);box-shadow:0 2px 8px #aaa5a033}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 10px 35px #2b271c0b}.stat-card{padding:19px;min-height:128px;position:relative;overflow:hidden}.stat-label{color:var(--muted);font-size:12px}.stat-value{margin-top:14px;font:650 27px/1 var(--font-latin);letter-spacing:-.04em}.stat-delta{margin-top:12px;color:var(--green);font-size:12px}.stat-delta.warn{color:var(--red)}.stat-accent{position:absolute;right:-18px;bottom:-30px;width:84px;height:84px;background:var(--gold-soft);border-radius:50%}.dashboard-grid{margin-top:16px;display:grid;grid-template-columns:1.4fr .8fr;gap:16px}.panel{padding:22px}.panel-title{margin:0;font-size:16px}.panel-subtitle{margin:5px 0 20px;color:var(--muted);font-size:12px}.bar-chart{height:210px;display:flex;align-items:flex-end;gap:12px;padding-top:25px;border-bottom:1px solid var(--line)}.bar-column{flex:1 1;display:grid;align-items:end;gap:8px;height:100%}.bar{width:100%;min-width:12px;background:linear-gradient(180deg,#c8a765,#a27a37);border-radius:7px 7px 2px 2px}.bar-label{color:var(--muted);text-align:center;font-size:10px}.alerts{display:grid;gap:10px}.alert{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:13px;background:#f8f7f2;border-radius:12px}.alert strong{display:block;font-size:13px}.alert span{color:var(--muted);font-size:11px}.pill{flex:none;padding:4px 8px;border-radius:99px;font-size:10px!important}.pill.warning{background:#fff0d6;color:#9a6422}.pill.safe{background:#dbf2e8;color:var(--green)}.pill.mock{background:#e7e3f8;color:#6650a5}.module-card{overflow:hidden}.module-summary{padding:18px 20px;border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;gap:10px 28px}.summary-item span{display:block;color:var(--muted);font-size:11px}.summary-item strong{display:block;margin-top:4px;font-size:15px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;padding:12px 20px;background:#f8f7f3;color:var(--muted);font-weight:600}td,th{white-space:nowrap}td{padding:15px 20px;border-top:1px solid var(--line)}.status{display:inline-flex;align-items:center;gap:6px;color:var(--green)}.status:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.action-btn{border:0;background:var(--ink);color:#fff;border-radius:10px;padding:10px 15px;cursor:pointer}.notice{margin-top:16px;padding:14px 16px;border:1px solid #e5d7b9;background:#fffaf0;border-radius:12px;color:#715b31;font-size:12px}.safety-banner{flex-wrap:wrap;gap:10px 18px;padding:13px 16px;color:#e7f8ef;background:#1b5c46;border-radius:12px;font-size:12px}.owner-context,.safety-banner{margin-bottom:16px;display:flex;align-items:center}.owner-context{padding:18px 20px;justify-content:space-between;gap:18px}.owner-context>div{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 13px}.owner-context-label{color:var(--muted);font-size:12px}.owner-context strong{font-size:19px}.owner-context span:last-child{color:var(--muted);font-size:12px}.market-switch{display:flex;gap:6px;padding:4px;background:#f1f0ea;border-radius:11px}.market-switch a{padding:8px 12px;border-radius:8px;color:var(--muted);font-size:13px}.market-switch a.active{background:#fff;color:var(--ink);box-shadow:0 2px 8px #2b271c14}.owner-stats{grid-template-columns:repeat(5,minmax(0,1fr))}.owner-sections{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}.owner-alert>div,.owner-decision>div{display:grid;gap:5px}.owner-alert span,.owner-decision span{display:block}.owner-decision .small-btn{display:inline-flex;width:max-content;margin-top:5px}.freshness-panel{margin-top:16px;display:grid;grid-template-columns:.75fr 1.35fr auto;gap:18px;align-items:center}.freshness-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.freshness-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:10px;background:#f8f7f2;border-radius:10px;font-size:12px}.freshness-row>span:not(.pill){color:var(--muted)}.technical-link{color:#765a28;font-size:13px;font-weight:700;white-space:nowrap}.technical-panel dl{margin:18px 0 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.technical-panel dl div{padding:13px;border-radius:10px;background:#f8f7f2}.technical-panel dt{color:var(--muted);font-size:11px}.technical-panel dd{margin:7px 0 0;font-size:14px;font-weight:700;overflow-wrap:anywhere}.technical-links{display:flex;flex-wrap:wrap;gap:9px;margin-top:16px}.technical-links a{padding:9px 12px;border:1px solid var(--line);border-radius:9px;color:#765a28;font-size:13px;font-weight:700}.technical-links a:hover{border-color:var(--gold);background:var(--gold-soft)}.safety-banner strong{letter-spacing:.08em}.mapping,.result-chip,.source-badge{display:inline-flex;padding:4px 8px;border-radius:99px;font-size:10px;font-weight:750;letter-spacing:.04em}.source-MOCK{color:#6650a5;background:#e7e3f8}.source-SANDBOX{color:#8a5c18;background:#fff0d6}.mapping-CONFIRMED,.source-PRODUCTION_READ{color:#1b5c46;background:#dff3e9}.mapping-PROBABLE,.mapping-REVIEW{color:#8a5c18;background:#fff0d6}.mapping-CONFLICT,.mapping-UNKNOWN{color:#9a3c34;background:#f9dfdc}.mapping-IMPORTED,.mapping-VALID{color:#1b5c46;background:#dff3e9}.mapping-DUPLICATE,.mapping-INVALID{color:#9a3c34;background:#f9dfdc}.mapping-REVIEW{color:#8a5c18;background:#fff0d6}.denied{color:#9a3c34;font-weight:750}.muted{color:var(--muted);font-size:11px}.connection-action{display:grid;gap:6px;min-width:118px}.small-btn{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:8px;padding:7px 9px;cursor:pointer;white-space:nowrap}.small-btn:hover{border-color:var(--gold)}.result-CONNECTED{color:#1b5c46;background:#dff3e9}.result-AUTH_FAILED,.result-CONFIG_MISSING,.result-NETWORK_ERROR,.result-PERMISSION_DENIED,.result-RATE_LIMITED,.result-UNKNOWN_ERROR{color:#9a3c34;background:#f9dfdc}.connection-profile{margin-bottom:16px;padding:22px;display:grid;grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr);gap:24px;align-items:start}.connection-profile h2{margin:7px 0 5px;font-size:21px}.connection-profile p{margin:0;color:var(--muted);font-size:12px;line-height:1.6}.connection-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.connection-fact{min-width:0;padding:12px;background:#f8f7f2;border-radius:11px}.connection-fact span{display:block;color:var(--muted);font-size:10px}.connection-fact strong{display:block;margin-top:5px;font-size:12px;overflow-wrap:anywhere}.import-layout{display:grid;gap:16px}.import-panel{padding:22px}.import-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px}.import-tabs a{padding:8px 12px;border:1px solid var(--line);border-radius:9px;color:var(--muted);font-size:12px}.import-tabs a.active{background:var(--ink);color:#fff;border-color:var(--ink)}.page-tabs{margin-bottom:16px}.import-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;align-items:end}.import-form label,.mapping-grid label{display:grid;gap:6px;color:var(--muted);font-size:11px}.import-actions input,.import-form input,.import-form select,.mapping-grid select{width:100%;min-width:0;border:1px solid var(--line);background:#fff;border-radius:9px;padding:10px;color:var(--ink)}.import-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.import-section-head h2{margin:6px 0 0;font-size:20px}.mapping-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}.template-picker{display:grid;grid-template-columns:auto minmax(180px,360px);gap:10px;align-items:center;margin-bottom:14px;color:var(--muted);font-size:11px}.template-picker select{border:1px solid var(--line);background:#fff;border-radius:9px;padding:9px}.mapping-grid label{padding:11px;background:#f8f7f2;border-radius:11px}.mapping-grid label span{color:var(--ink);font-weight:700}.import-actions{display:grid;grid-template-columns:auto minmax(180px,1fr) auto auto;gap:9px;margin-top:16px;align-items:center}.import-stats{grid-template-columns:repeat(6,minmax(0,1fr))}.import-stats .stat-card{min-height:100px}.import-json{max-width:560px;overflow:hidden;text-overflow:ellipsis}.mobile-import-list{display:none}.mobile-import-card{padding:15px}.mobile-import-card>div:first-child{display:grid;gap:4px}.mobile-import-card p,.mobile-import-card span{color:var(--muted);font-size:11px}.mobile-import-card dl{margin:14px 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.mobile-import-card dl div{padding:9px;background:#f8f7f2;border-radius:9px}.mobile-import-card dt{color:var(--muted);font-size:10px}.mobile-import-card dd{margin:4px 0 0;font-size:11px;font-weight:750;overflow-wrap:anywhere}.login-page{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr;background:#151711}.login-visual{padding:7vw;color:#fff;display:flex;flex-direction:column;justify-content:space-between;background:radial-gradient(circle at 20% 20%,#655637 0,transparent 38%),linear-gradient(145deg,#1f2119,#10110d)}.login-visual h1{max-width:650px;font-size:clamp(42px,6vw,78px);line-height:.98}.login-visual p{color:#b8b7ae;max-width:500px}.login-form-wrap{background:var(--canvas);display:grid;place-items:center;padding:30px}.login-form{width:min(420px,100%);background:#fff;border:1px solid var(--line);border-radius:24px;padding:34px}.login-form h2{margin:0;font-size:28px}.login-form label{display:grid;gap:7px;margin-top:18px;color:var(--muted);font-size:12px}.login-form input{border:1px solid var(--line);border-radius:10px;padding:12px;outline:none}.login-form input:focus{border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-soft)}.login-form button{width:100%;margin-top:22px;border:0;border-radius:10px;padding:13px;background:var(--ink);color:#fff;cursor:pointer}.mock-note{margin-top:15px;color:var(--muted);font-size:11px}@media (max-width:1050px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.connection-profile,.dashboard-grid{grid-template-columns:1fr}.connection-facts,.owner-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.freshness-panel,.owner-sections{grid-template-columns:1fr}.import-form,.technical-panel dl{grid-template-columns:repeat(2,minmax(0,1fr))}.import-stats,.mapping-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:760px){.app-shell{grid-template-columns:minmax(0,1fr);overflow-x:hidden}.sidebar{position:static;height:auto;padding:14px;min-width:0;width:100%;overflow:hidden}.brand{padding-bottom:14px}.brand-sub,.dev-badge{display:none}.nav{display:flex;overflow-x:auto;padding:12px 0 0;width:100%;min-width:0}.nav-link{flex:none}.nav-link span{display:none}.main{width:100%;min-width:0}.topbar{height:60px;padding:0 18px}.content{padding:23px 16px 40px}.page-head{align-items:flex-start;flex-direction:column}.stats{grid-template-columns:1fr 1fr;gap:10px}.stat-card{min-height:112px;padding:15px}.stat-value{font-size:22px}.login-page{grid-template-columns:1fr}.login-visual{min-height:34vh;padding:36px 26px}.login-visual h1{font-size:42px}.import-actions,.import-form,.mapping-grid{grid-template-columns:1fr}.import-stats{grid-template-columns:1fr 1fr}.import-panel{padding:16px}.import-history-table{display:none}.mobile-import-list{display:grid;gap:10px}.owner-context{align-items:flex-start;flex-direction:column}.freshness-list,.owner-stats,.technical-panel dl{grid-template-columns:1fr}.freshness-row{min-height:48px}.owner-sections{gap:12px}}@media (max-width:420px){.stats{grid-template-columns:1fr}}