:root{
 --ink:#172033;--muted:#738095;--line:#e7eaf0;--surface:#fff;--canvas:#f5f7fb;
 --nav:#101827;--nav-active:#243047;--accent:#6165ed;--accent-soft:#eef0ff;
 --green:#16a372;--green-soft:#e8f8f1;--amber:#d99a20;--red:#d65360;--red-soft:#fdecee;
 --shadow:0 8px 30px rgba(24,35,58,.055)
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--canvas);color:var(--ink)}
a{text-decoration:none;color:inherit}button,input,textarea,select{font:inherit}.layout{display:grid;grid-template-columns:244px minmax(0,1fr);min-height:100vh}
.sidebar{position:fixed;inset:0 auto 0 0;width:244px;padding:25px 18px;background:linear-gradient(180deg,#101827,#111b2e);color:#c8d0dc;z-index:20}
.brand{margin:4px 9px 34px;font-size:20px;line-height:1.05;font-weight:850;color:#fff}.brand span{color:#8f92ff}.brand small{display:block;margin-top:7px;font-size:9px;letter-spacing:.18em;color:#7f8ca2}
.nav a{display:flex;align-items:center;padding:11px 13px;margin:4px 0;border-radius:10px;font-size:13px;color:#aeb8c7}.nav a:hover,.nav a.active{background:var(--nav-active);color:#fff}.nav .bottom{position:absolute;left:18px;right:18px;bottom:22px}
.main{grid-column:2;min-width:0;padding:24px 28px 42px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}.topbar h1{margin:0;font-size:25px;letter-spacing:-.035em}.sub{font-size:12px;color:var(--muted)}
.user-chip{display:flex;align-items:center;gap:9px;padding:7px 11px;border:1px solid var(--line);border-radius:24px;background:#fff}.avatar{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#6266ed,#8c7af3);color:#fff;font-size:10px;font-weight:800}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow);overflow:hidden}.page-panel{padding:22px}.panel-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--line)}.panel-head h3{margin:0;font-size:15px}
.flash{margin-bottom:15px;padding:11px 14px;border-radius:10px;background:var(--green-soft);color:#0e7451;font-size:13px}.flash.error{background:var(--red-soft);color:#a32e3a}
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.kpi{padding:16px 17px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.kpi .num{font-size:25px;font-weight:850;letter-spacing:-.04em}.kpi .label{margin-top:2px;font-size:11px;color:var(--muted)}.kpi .trend{margin-top:8px;font-size:10px;color:var(--green)}
.filterbar{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr auto;gap:9px;padding:14px;margin-bottom:16px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}
.select,input[type=text],input[type=email],input[type=password],input[type=url],input[type=number],textarea,select{width:100%;border:1px solid var(--line);border-radius:9px;background:#fff;padding:10px 11px;color:#334056;outline:none}.select:focus,input:focus,textarea:focus,select:focus{border-color:#bfc2ff;box-shadow:0 0 0 3px #f0f0ff}textarea{min-height:112px;resize:vertical}label{display:block;margin-bottom:6px;font-size:11px;font-weight:750;color:#344055}
.dashboard-grid{display:grid;grid-template-columns:minmax(480px,1.15fr) minmax(350px,.72fr);gap:16px;align-items:start}.project-list{padding:7px}.project-card{display:grid;grid-template-columns:1fr auto;gap:14px;padding:15px 16px;margin:5px 0;border:1px solid transparent;border-radius:12px;transition:.15s}.project-card:hover,.project-card.active{background:#f5f5ff;border-color:#dfe0ff}.project-card h3{margin:0 0 6px;font-size:14px}.meta{display:flex;flex-wrap:wrap;gap:8px;font-size:11px;color:var(--muted)}.tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}.tag{padding:4px 7px;border-radius:20px;background:#eef1f6;color:#536074;font-size:9px}.score-ring{display:grid;place-items:center;width:52px;height:52px;border:5px solid var(--green);border-radius:50%;background:#fff;font-size:16px;font-weight:850}
.detail{position:sticky;top:18px;padding:21px}.detail h2{margin:4px 0 5px;font-size:21px;letter-spacing:-.025em}.score-row{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:18px 0}.metric{padding:10px 6px;border-radius:10px;background:#f4f6fa;text-align:center}.metric b{display:block;font-size:18px}.metric span{font-size:9px;color:var(--muted)}.section{margin:17px 0}.section h4{margin:0 0 6px;font-size:12px}.section p{margin:0;font-size:12px;line-height:1.55;color:#566276}
.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:9px;padding:9px 12px;background:#edf0f5;color:#2e394c;font-size:11px;font-weight:700;cursor:pointer}.btn:hover{filter:brightness(.98)}.btn.primary{background:linear-gradient(135deg,#6266ed,#7d70ef);color:#fff}.btn.good{background:var(--green-soft);color:#087650}.btn.bad{background:var(--red-soft);color:#a52b36}.btn.dark{background:#202a3b;color:#fff}.btn.ghost{background:#fff;border:1px solid var(--line)}.btn.large{padding:12px 17px;font-size:13px}.actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:18px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid .full{grid-column:1/-1}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:10px 11px;border-bottom:1px solid var(--line);text-align:left;font-size:11px;vertical-align:top}.table th{color:#68758a;font-weight:750;background:#fafbfc}.empty{padding:32px;text-align:center;color:var(--muted)}
.profile-hero{display:grid;grid-template-columns:1.25fr .75fr;gap:15px;margin-bottom:15px}.hero-card{padding:25px;border-radius:16px;background:linear-gradient(135deg,#182238,#27334f);color:#fff}.hero-card h2{margin:5px 0 9px;font-size:24px}.hero-card p{margin:0 0 19px;color:#c5cdd9;font-size:12px;line-height:1.6}.source-card{padding:21px;background:#fff;border:1px solid var(--line);border-radius:16px}.source-card .big{font-size:35px;font-weight:850}
.profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.profile-tile{padding:18px;border:1px solid var(--line);border-radius:13px;background:#fff}.profile-tile h3{margin:0 0 5px;font-size:15px}.profile-accent{width:32px;height:4px;border-radius:4px;margin-bottom:12px;background:var(--accent)}
.progress-overlay{display:none;position:fixed;inset:0;z-index:9999;align-items:center;justify-content:center;background:rgba(13,20,34,.48);backdrop-filter:blur(3px)}.progress-overlay.show{display:flex}.progress-box{width:min(510px,90vw);padding:25px 27px;border-radius:17px;background:#fff;box-shadow:0 28px 90px rgba(0,0,0,.25)}.progress-box h2{margin:0 0 7px;font-size:18px}.progress-track{height:5px;margin:18px 0 14px;border-radius:8px;background:#edf0f5;overflow:hidden}.progress-bar{height:100%;width:10%;border-radius:8px;background:linear-gradient(90deg,#6266ed,#8c7af3);animation:softprogress 55s cubic-bezier(.12,.58,.22,1) forwards}.progress-status{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--muted)}.pulse{width:7px;height:7px;border-radius:50%;background:var(--accent);animation:pulse 1.25s infinite}@keyframes softprogress{0%{width:8%}18%{width:27%}45%{width:52%}72%{width:73%}100%{width:91%}}@keyframes pulse{50%{opacity:.3;transform:scale(.75)}}
.login{display:grid;place-items:center;min-height:100vh;background:linear-gradient(135deg,#101827,#293651)}.login-box{width:min(420px,92vw);padding:32px;border-radius:18px;background:#fff;box-shadow:0 25px 70px rgba(0,0,0,.22)}
@media(max-width:1100px){.kpis{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.profile-hero{grid-template-columns:1fr}.detail{position:static}.filterbar{grid-template-columns:1fr 1fr}.filterbar .btn{grid-column:1/-1}.profile-grid{grid-template-columns:1fr}}
@media(max-width:760px){.layout{display:block}.sidebar{position:static;width:auto}.nav .bottom{position:static}.main{padding:17px}.form-grid{grid-template-columns:1fr}.kpis{grid-template-columns:1fr 1fr}.dashboard-grid{grid-template-columns:1fr}}

.profile-workspace{display:grid;grid-template-columns:250px minmax(0,1fr);gap:16px;align-items:start}.profile-index{padding:10px;position:sticky;top:18px}.profile-link{display:block;padding:12px;border-radius:11px;margin:4px 0}.profile-link.active,.profile-link:hover{background:#f0f2ff}.profile-link b,.profile-link span{display:block}.profile-link b{font-size:12px}.profile-link span{font-size:9px;color:var(--muted);margin-top:4px;line-height:1.35}.profile-editor{min-width:0}.profile-banner{background:linear-gradient(135deg,#172238,#273553);color:#fff;border-radius:16px;padding:22px;display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:15px}.profile-banner h2{margin:5px 0;font-size:22px}.profile-banner p{margin:0;color:#c8d0dd;font-size:11px}.profile-form{display:grid;gap:15px}.profile-block{padding:23px}.block-title{display:flex;gap:12px;align-items:flex-start;margin-bottom:20px}.block-title>span{width:32px;height:32px;border-radius:10px;background:#e9edff;color:#4f5fd6;display:grid;place-items:center;font-weight:850}.output-block .block-title>span{background:#e6f8f1;color:#08744f}.block-title h3{margin:0;font-size:16px}.block-title p{margin:4px 0 0;color:var(--muted);font-size:10px}.control-field{min-height:150px;border:1.5px solid #aeb7ff!important;background:#fafaff!important}input[type=date]{width:100%;border:1px solid var(--line);border-radius:10px;padding:11px;background:#fff}input,textarea,select{transition:.15s;border-color:#dce2eb!important;box-shadow:0 1px 2px rgba(20,30,50,.03)}input:focus,textarea:focus,select:focus{outline:none;border-color:#8d98f6!important;box-shadow:0 0 0 4px rgba(85,102,232,.09)}.country-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.country-chip{margin:0}.country-chip input{display:none}.country-chip span{display:block;text-align:center;padding:9px;border:1px solid var(--line);border-radius:9px;font-size:10px;background:#fff}.country-chip input:checked+span{background:#eef0ff;border-color:#8f99f4;color:#3947bd}.refreshbar{display:flex;justify-content:space-between;align-items:center;background:linear-gradient(135deg,#172238,#273553);color:#fff;border-radius:15px;padding:15px 17px;margin-bottom:14px}.refreshbar b,.refreshbar span{display:block}.refreshbar b{font-size:13px}.refreshbar span{font-size:9px;color:#c4cddd;margin-top:3px}.source-assignment{padding:14px;border:1px solid var(--line);border-radius:12px;background:#fafbfc}@media(max-width:900px){.profile-workspace{grid-template-columns:1fr}.profile-index{position:static}.country-grid{grid-template-columns:repeat(2,1fr)}.profile-banner,.refreshbar{align-items:flex-start;flex-direction:column}}


/* V0.5.0 – Digital Twin */
.twin-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;background:linear-gradient(135deg,#172238,#2a3959);color:#fff;border-radius:18px;padding:26px;margin-bottom:15px;box-shadow:var(--shadow)}
.twin-hero h2{font-size:24px;margin:6px 0}.twin-hero p{max-width:760px;color:#c8d0dd;font-size:12px;line-height:1.6;margin:0}
.eyebrow{font-size:9px;letter-spacing:.11em;color:#9da8ff;font-weight:850}
.twin-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:15px}
.twin-stats article{background:#fff;border:1px solid var(--line);border-radius:13px;padding:14px 16px;box-shadow:0 5px 18px rgba(25,35,55,.035)}
.twin-stats b,.twin-stats span{display:block}.twin-stats b{font-size:23px}.twin-stats span{font-size:10px;color:var(--muted);margin-top:2px}
.twin-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:15px;align-items:start}
.twin-groups{display:grid;gap:13px}.twin-group{overflow:hidden}.twin-list{padding:8px 14px 14px}
.twin-node{padding:14px 2px;border-top:1px solid var(--line)}.twin-node:first-child{border-top:0}
.twin-node-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.twin-node-head b,.twin-node-head span{display:block}.twin-node-head b{font-size:13px}.twin-node-head span{font-size:9px;color:var(--muted);margin-top:3px}
.twin-node p{font-size:11px;color:#536074;line-height:1.55;margin:9px 0}.twin-node small{font-size:9px;color:#7b8698;line-height:1.45;display:block}
.confidence{background:#e7f8f1!important;color:#08744f!important;border-radius:18px;padding:5px 8px;font-size:10px!important;font-weight:800;white-space:nowrap}
.node-actions{display:flex;gap:7px;justify-content:flex-end;margin-top:10px}.node-actions form{margin:0}
.twin-editor{padding:20px;position:sticky;top:18px}.twin-editor h3{margin-top:0}.twin-editor label{margin-top:12px}.twin-editor .tall{min-height:180px}.active-check{display:flex!important;align-items:center;gap:8px;margin:14px 0!important}
@media(max-width:1050px){.twin-layout{grid-template-columns:1fr}.twin-editor{position:static}.twin-stats{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.twin-hero{align-items:flex-start;flex-direction:column}.twin-stats{grid-template-columns:1fr 1fr}}


/* V0.5.4 – DEBUG */
.debug-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;background:linear-gradient(135deg,#172238,#2b3958);color:#fff;border-radius:18px;padding:25px;margin-bottom:15px}
.debug-hero h2{margin:6px 0;font-size:23px}.debug-hero p{margin:0;max-width:760px;color:#c8d0dd;font-size:11px;line-height:1.6}
.debug-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.debug-grid .panel{padding:18px}
.debug-list{display:grid;grid-template-columns:minmax(140px,1fr) 2fr;gap:8px 14px;margin:0}.debug-list dt{font-size:10px;color:var(--muted)}.debug-list dd{font-size:10px;margin:0;word-break:break-word}
.debug-note{padding:20px}.debug-note h3{margin-top:0}.debug-note p{font-size:11px;color:var(--muted);margin-bottom:0}
@media(max-width:800px){.debug-hero{align-items:flex-start;flex-direction:column}.debug-grid{grid-template-columns:1fr}}
