:root{
  --bg:#f6f4ef; --surface:#ffffff; --ink:#1b2430; --ink-soft:#5b6774;
  --line:#dcd6c9; --navy:#1e3a5f; --navy-soft:#e7edf3; --navy-strong:#14263d;
  --amber:#a8701f; --amber-soft:#f6e9d3; --danger:#a5402b; --danger-soft:#f5e2dd;
  --success:#2f6b3e; --success-soft:#e3f0e5;
  --radius:8px;
}
*{box-sizing:border-box}
body{margin:0;font-family:'Segoe UI',Arial,sans-serif;background:var(--bg);color:var(--ink);}
a{color:var(--navy)}
.topbar{display:flex;align-items:center;justify-content:space-between;background:var(--navy-strong);color:#fff;padding:0.75rem 1.5rem;}
.topbar-brand{font-weight:700;letter-spacing:0.05em;}
.topbar-brand span{color:var(--amber);font-weight:400;}
.topbar-nav a{color:#fff;text-decoration:none;margin-right:1.25rem;opacity:0.9;}
.topbar-nav a:hover{opacity:1;text-decoration:underline;}
.topbar-user{display:flex;align-items:center;gap:1rem;}
.logout-link{color:#fff;text-decoration:underline;}
.page{max-width:1000px;margin:2rem auto;padding:0 1rem;}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem 2rem;margin-bottom:1.5rem;}
.card-narrow{max-width:380px;margin:4rem auto;}
.bare{min-height:100vh;}
.bare-wrap{max-width:420px;margin:0 auto;padding-top:3rem;}
.bare-brand{text-align:center;font-weight:700;letter-spacing:0.08em;color:var(--navy-strong);margin-bottom:1rem;}
.bare-brand span{color:var(--amber);font-weight:400;}
label{display:block;margin-bottom:1rem;font-size:0.9rem;color:var(--ink-soft);}
input[type=text],input[type=email],input[type=password],input[type=file]{
  display:block;width:100%;padding:0.55rem 0.7rem;margin-top:0.3rem;border:1px solid var(--line);border-radius:6px;font-size:1rem;color:var(--ink);background:#fff;
}
button{background:var(--navy);color:#fff;border:none;padding:0.6rem 1.4rem;border-radius:6px;font-size:1rem;cursor:pointer;}
button:hover{background:var(--navy-strong);}
.alert{padding:0.7rem 1rem;border-radius:6px;margin-bottom:1rem;font-size:0.9rem;}
.alert-error{background:var(--danger-soft);color:var(--danger);border:1px solid var(--danger);}
.alert-success{background:var(--success-soft);color:var(--success);border:1px solid var(--success);}
.alert-dev{background:var(--amber-soft);color:var(--amber);border:1px dashed var(--amber);}
.muted{color:var(--ink-soft);font-size:0.85rem;}
.muted.small{font-size:0.78rem;}
fieldset{border:1px solid var(--line);border-radius:6px;margin-bottom:1.25rem;padding:1rem 1.25rem;}
legend{padding:0 0.5rem;font-weight:600;color:var(--navy);text-transform:capitalize;}
.setting-row{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--line);padding:0.5rem 0;margin-bottom:0;}
.setting-label{flex:0 0 45%;font-size:0.85rem;color:var(--ink);}
.setting-row input{flex:1;margin-top:0;}
.badge{display:inline-block;font-size:0.7rem;padding:0.1rem 0.4rem;border-radius:4px;margin-left:0.4rem;}
.badge-sensitive{background:var(--danger-soft);color:var(--danger);}
.badge-active{background:var(--success-soft);color:var(--success);}
.badge-inactive{background:var(--danger-soft);color:var(--danger);}
.badge-protected{background:var(--amber-soft);color:var(--amber);}
.protected-row{background:var(--amber-soft);border-left:3px solid var(--amber);padding-left:0.6rem;}
.lock-icon{margin-right:0.3rem;}
.unlock-btn{margin-left:0.5rem;}
input[readonly],textarea[readonly]{background:var(--line);color:var(--ink);opacity:0.75;cursor:not-allowed;}
.asset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1.25rem;}
.asset-tile{border:1px solid var(--line);border-radius:6px;padding:1rem;}
.asset-tile h3{margin-top:0;font-size:1rem;color:var(--navy);}
.asset-preview{max-width:100%;max-height:110px;border:1px solid var(--line);background:repeating-conic-gradient(#eee 0% 25%, #fff 0% 50%) 50% / 16px 16px;padding:4px;}

/* --- Phase B: clients / orders / stages / documents --- */
select,textarea{
  display:block;width:100%;padding:0.55rem 0.7rem;margin-top:0.3rem;border:1px solid var(--line);border-radius:6px;font-size:1rem;color:var(--ink);background:#fff;font-family:inherit;
}
textarea{resize:vertical;}
.page-wide{max-width:1280px;}
table.list{width:100%;border-collapse:collapse;margin-bottom:1rem;}
table.list th{text-align:left;background:var(--navy-soft);color:var(--navy-strong);padding:0.5rem 0.7rem;font-size:0.82rem;}
table.list td{padding:0.5rem 0.7rem;border-bottom:1px solid var(--line);font-size:0.88rem;vertical-align:top;}
table.list tr:hover td{background:#fafaf7;}
.btn-row{display:flex;gap:0.6rem;flex-wrap:wrap;margin-top:0.75rem;}
.btn-sm{padding:0.4rem 0.9rem;font-size:0.85rem;}
.btn-secondary{background:var(--surface);color:var(--navy);border:1px solid var(--navy);}
.btn-secondary:hover{background:var(--navy-soft);}
.btn-success{background:var(--success);}
.btn-success:hover{background:#234f2d;}
.btn-danger{background:var(--danger);}
.btn-danger:hover{background:#7e3221;}
a.btn{display:inline-block;background:var(--navy);color:#fff;border:none;padding:0.6rem 1.4rem;border-radius:6px;font-size:1rem;text-decoration:none;}
a.btn:hover{background:var(--navy-strong);}
a.btn-sm{padding:0.4rem 0.9rem;font-size:0.85rem;}
.product-row{display:grid;grid-template-columns:2fr 1fr 1fr 0.8fr 0.8fr 0.9fr 0.8fr auto;gap:0.5rem;align-items:end;margin-bottom:0.6rem;}
.product-row label{margin-bottom:0.2rem;font-size:0.72rem;}
.product-row input{margin-top:0;}
.remove-row{background:var(--danger);padding:0.5rem 0.7rem;}
.remove-row:hover{background:#7e3221;}
.stage-track{display:flex;flex-wrap:wrap;gap:0.4rem;margin-bottom:1.25rem;}
.stage-chip{flex:1 1 100px;border-radius:6px;padding:0.5rem 0.6rem;font-size:0.75rem;text-align:center;border:1px solid var(--line);color:var(--ink-soft);}
.stage-chip.locked{background:#f1efe9;}
.stage-chip.in_progress{background:var(--amber-soft);color:var(--amber);border-color:var(--amber);font-weight:600;}
.stage-chip.gate_passed{background:var(--success-soft);color:var(--success);border-color:var(--success);}
.section{margin-bottom:1.75rem;}
.section h2{font-size:1rem;color:var(--navy-strong);border-left:3px solid var(--navy);padding-left:0.6rem;margin-bottom:0.7rem;}
.kv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:0.6rem 1.5rem;}
.kv-grid div span.k{display:block;color:var(--ink-soft);font-size:0.75rem;}
.kv-grid div span.v{font-weight:600;}
.doc-pill{display:inline-block;padding:0.15rem 0.55rem;border-radius:10px;font-size:0.7rem;background:var(--navy-soft);color:var(--navy-strong);margin-left:0.4rem;}

/* --- Phase E: dashboard / reports --- */
.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;margin-bottom:1rem;}
.stat-tile{border:1px solid var(--line);border-radius:6px;padding:0.9rem 1rem;background:#fafaf7;}
.stat-tile .num{font-size:1.7rem;font-weight:700;color:var(--navy-strong);line-height:1.1;}
.stat-tile .label{font-size:0.78rem;color:var(--ink-soft);margin-top:0.15rem;}
.stat-tile.warn{background:var(--amber-soft);border-color:var(--amber);}
.stat-tile.warn .num{color:var(--amber);}
.stat-tile.danger{background:var(--danger-soft);border-color:var(--danger);}
.stat-tile.danger .num{color:var(--danger);}
.search-box{display:flex;gap:0.5rem;margin-bottom:1rem;}
.search-box input{margin-top:0;}
.masked-value{font-family:monospace;letter-spacing:0.03em;color:var(--ink-soft);}
