:root{--bg:#ffffff;--panel:#fbfdff;--panel-strong:#f4f7fb;--line:#e6ebf2;--text:#0f172a;--muted:#5b6477;--accent:#ad00ff;--accent-soft:#faf2ff;--success:#1f9d63;--warning:#b7791f;--danger:#c53030;--info:#1769aa;--radius-sm:10px;--radius-md:14px;--radius-lg:18px;--shadow-sm:0 6px 16px rgba(15,23,42,0.06);--shadow-md:0 12px 24px rgba(15,23,42,0.08);--font-body:"Avenir Next","Segoe UI","Helvetica Neue",sans-serif}*{box-sizing:border-box}body,html{margin:0;padding:0;background:linear-gradient(180deg,#ffffff,#f8fbff);color:var(--text);font-family:var(--font-body)}a{color:inherit;text-decoration:none}button,input,select{font:inherit}.app-shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.sidebar{background:linear-gradient(180deg,#fbfdff,#f6f8fc);border-right:1px solid var(--line);padding:24px 16px}.sidebar nav{display:grid;grid-gap:8px;gap:8px;margin-top:28px}.sidebar-link{padding:10px 12px;border-radius:12px;color:var(--muted)}.sidebar-link.active,.sidebar-link:hover{background:var(--accent-soft);color:#7d06b6}.content{padding:24px}.header{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border:1px solid var(--line);border-radius:var(--radius-lg);background:rgba(255,255,255,.9);box-shadow:var(--shadow-sm)}.page-grid{display:grid;grid-gap:20px;gap:20px;margin-top:20px}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:16px;gap:16px}.card,.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.card{padding:18px}.panel{padding:20px}.stat-label{color:var(--muted);font-size:13px}.stat-value{margin-top:10px;font-size:28px;color:var(--text)}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:var(--radius-lg);background:white}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);font-size:14px}th{color:var(--muted);font-weight:600;background:#fcfdff}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:16px;gap:16px}.field{display:grid;grid-gap:8px;gap:8px}.field label{font-size:13px;color:var(--muted)}.field input,.field select,.field textarea{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:white}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:600}.badge.draft{background:#f3f4f6;color:#475569}.badge.validated{background:#ebfff5;color:var(--success)}.badge.locked{background:#fff7ed;color:var(--warning)}.badge.pending,.badge.proposed{background:var(--accent-soft);color:#7d06b6}.badge.review{background:#fff5f5;color:var(--danger)}.dropzone{border:1px dashed #d6deeb;border-radius:var(--radius-lg);padding:24px;background:linear-gradient(180deg,#ffffff,#fbfdff);color:var(--muted)}.split{display:grid;grid-template-columns:1.2fr 1fr;grid-gap:20px;gap:20px}.empty-state{padding:32px;text-align:center;color:var(--muted);border:1px dashed #d6deeb;border-radius:var(--radius-lg)}.drawer,.modal{border:1px solid var(--line);background:white;border-radius:var(--radius-lg);padding:20px}.brand-logo{width:180px;height:auto}@media (max-width:1100px){.app-shell,.cards,.form-grid,.split{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--line)}}