/* Viawin Atelier: restrained navy, platinum detail and clear work surfaces. */
:root {
  --bg: light-dark(#eef1f6, #090f1c);
  --panel: light-dark(#ffffff, #131e30);
  --inset: light-dark(#f5f7fb, #18263b);
  --ink: light-dark(#15243d, #edf2fa);
  --muted: light-dark(#566780, #a9b8ce);
  --line: light-dark(#d5deeb, #31415a);
  --brand: light-dark(#254c95, #bdd3ff);
  --brand2: var(--brand);
  --soft: light-dark(#e9effa, #203452);
  --metal: light-dark(#796342, #cfbd9a);
  --shadow: 0 10px 30px light-dark(#15243d08, #00000020);
  font-family: 'Segoe UI Variable', 'Segoe UI', -apple-system, sans-serif;
  font-variant-numeric: tabular-nums;
  -webkit-font-smoothing: antialiased;
}
body {
  background: radial-gradient(ellipse at 85% 0%, light-dark(#dbe5f777, #203b632f), transparent 60%), var(--bg);
}
::selection { background: #3b619b; color: #fff; }
main#main-content { padding: 38px 38px 0; }
.sidebar {
  background: linear-gradient(165deg, #14223b, #0b1425 70%);
  border-right: 1px solid #354360;
  padding-top: 35px;
}
.brand, .sidebar .brand { color: #edf3ff; letter-spacing: -1.8px; font-weight: 650; }
.brand span { color: #aab9d0; letter-spacing: .8px; }
.workspace-label { color: #b7a588; font-size: 9px; letter-spacing: 2px; }
.sidebar nav { gap: 5px; }
.sidebar nav a { color: #b6c3d8; border: 1px solid transparent; padding: 11px 12px; border-radius: 10px; }
.sidebar nav a span { color: #93a9cc; font-size: 19px; }
.sidebar nav a:hover { color: #fff; background: #1c2d48; border-color: #324565; }
.sidebar nav a.active {
  color: #f1f5ff; background: linear-gradient(110deg, #294266, #1b2b45);
  border-color: #4d6384; box-shadow: inset 3px 0 #cfbd9a, 0 4px 12px #00000020;
}
.sidebar nav a.active span { color: #dfcda9; }
.sidebar-bottom { border-top: 1px solid #31415a; padding-top: 22px; margin-top: 32px; }
.sidebar-bottom strong { color: #edf2fa; }
.sidebar-bottom small { color: #a9b8ce; }
.sidebar .avatar { background: #253b5c; color: #e7d9be; border: 1px solid #51627c; }
.topbar { background: light-dark(#ffffffd9, #101a2be8); border-bottom: 1px solid var(--line); padding: 15px 38px; }
.breadcrumb { letter-spacing: .25px; }
.page-heading { align-items: center; padding-bottom: 26px; margin-bottom: 28px; border-color: var(--line); }
h1 { font-size: clamp(27px, 2.7vw, 38px); line-height: 1.2; font-weight: 600; letter-spacing: -1.1px; }
h2 { font-size: 18px; font-weight: 650; letter-spacing: -.25px; }
h3 { font-weight: 650; }
.eyebrow { font-size: 10px; letter-spacing: 2px; color: var(--metal); }
.page-heading .muted { margin-top: 12px; }
.panel { border-radius: 16px; padding: 24px; border-color: var(--line); box-shadow: var(--shadow); }
.panel > .section-heading {
  background: linear-gradient(110deg, var(--inset), var(--panel));
  border-radius: 16px 16px 0 0; margin: -24px -24px 22px; padding: 19px 24px;
  border-bottom: 1px solid var(--line);
}
.panel > .section-heading:only-child { margin-bottom: -24px; border-radius: 16px; }
.panel > .section-heading h2::before {
  content: ''; display: inline-block; width: 3px; height: 14px;
  border-radius: 2px; background: var(--metal); margin-right: 10px; vertical-align: -1px;
}
.day-grid, .stack { gap: 24px; }
.metrics { gap: 20px; margin-bottom: 30px; }
.metrics a {
  position: relative; overflow: hidden; padding: 24px; border: 1px solid var(--line);
  border-radius: 16px; background: linear-gradient(125deg, var(--panel), var(--inset));
  box-shadow: var(--shadow);
}
.metrics a::after {
  content: ''; position: absolute; right: 24px; top: 24px; width: 7px; height: 7px;
  border: 1px solid var(--metal); transform: rotate(45deg);
}
.metrics span { color: var(--muted); font-size: 12px; font-weight: 600; padding-right: 18px; }
.metrics strong { font-size: 44px; font-weight: 500; letter-spacing: -1.5px; margin: 12px 0; line-height: 1.15; }
.metrics small { font-size: 11px; }
.metrics a:hover { background: var(--panel); border-color: var(--brand); }
.task-row, .task-row:last-child, .appointment {
  background: var(--inset); border: 1px solid var(--line); border-left: 3px solid var(--brand);
  border-radius: 10px; padding: 18px;
}
.task-row:has(.overdue) { border-left-color: var(--warning); }
.task-row .strong { font-weight: 650; }
.task-row .actions { gap: 10px; }
.date-card > span { border-radius: 12px; background: var(--soft); border: 1px solid var(--line); color: var(--brand); }
.soft-panel { background: linear-gradient(120deg, var(--soft), var(--panel)); border-radius: 16px; border: 1px solid var(--line); }
button, .button { border-radius: 9px; min-height: 42px; font-weight: 600; padding: 10px 16px; }
.primary {
  background: linear-gradient(115deg, #bdd3ff, #e1eaff); color: #152641;
  border: 1px solid #c6d7f4; box-shadow: 0 3px 10px #00000012;
}
.primary:hover { background: #edf3ff; color: #152641; border-color: #fff; }
@media (prefers-color-scheme: light) {
  .primary { background: linear-gradient(115deg, #254c95, #3662aa); color: #fff; border-color: #254c95; }
  .primary:hover { background: #1e417e; color: #fff; border-color: #1e417e; }
}
.small { min-height: 34px; padding: 6px 11px; }
.quiet { box-shadow: none; }
.badge { border-radius: 6px; font-size: 11px; letter-spacing: .15px; padding: 4px 9px; }
.notice { border-radius: 10px; border-left: 3px solid var(--brand); padding: 16px 20px; line-height: 1.7; }
.notice.warning { border-left-color: var(--warning); }
.notice.error { border-left-color: var(--danger); }
.notice.success { border-left-color: var(--success); }
.table-wrap { border-radius: 12px; }
th { font-size: 10px; letter-spacing: 1px; padding: 16px; background: var(--inset); }
td { padding: 17px 16px; }
tbody tr:hover { background: var(--soft); }
td small { margin-top: 4px; }
.tabs { border-radius: 11px; gap: 5px; }
.tabs a { border-radius: 7px; }
input, select, textarea { border-radius: 9px; min-height: 43px; background: var(--inset); padding: 10px 12px; }
input[type=checkbox], input[type=radio] { min-height: auto; accent-color: #5277b8; }
input:focus, select:focus, textarea:focus { border-color: var(--brand); }
textarea { line-height: 1.65; }
.form-stack label { font-weight: 550; }
.upload-zone { border-radius: 16px; border-color: light-dark(#718bb4, #6884ad); }
.pipeline-column { border-radius: 16px; padding: 17px; }
.pipeline-column > .section-heading { margin: -17px -17px 17px; padding: 18px 17px; border-radius: 16px 16px 0 0; }
.phase-number { background: var(--soft); color: var(--brand); border: 1px solid var(--line); }
.op-card { border-radius: 12px; padding: 20px; box-shadow: var(--shadow); }
.empty-column { border-radius: 10px; }
.calendar-day { border-radius: 10px; }
.list-row + .list-row { border-top: 1px solid var(--line); }
.rank { border-radius: 6px; border: 1px solid var(--line); }
.portal-hero, .login-story { background: linear-gradient(130deg, #253d62, #101d32); border: 1px solid #465879; }
.portal-hero .eyebrow, .login-story .eyebrow { color: #dfcda9; }
.footer { border-top: 1px solid var(--line); margin-top: 36px; padding: 22px 0; letter-spacing: .2px; }
@media (min-width: 1200px) {
  .shell { grid-template-columns: 238px minmax(0,1fr); }
  .day-grid { grid-template-columns: minmax(0,1.65fr) minmax(300px,1fr); }
}
@media (max-width: 850px) {
  .sidebar { padding: 18px 22px; }
  .sidebar .brand { font-size: 30px; }
  .nav-toggle { color: #dfe9fb; background: #1d2c45; border-color: #40516b; }
  .topbar { padding: 14px 22px; }
  main#main-content { padding: 26px 22px 0; }
  .page-heading { gap: 18px; }
}
@media (max-width: 650px) {
  main#main-content { padding: 25px 16px 0; }
  .page-heading { padding-bottom: 22px; margin-bottom: 22px; }
  .page-heading > .actions { width: 100%; }
  .metrics { gap: 8px; }
  .metrics a { padding: 16px 11px; border-radius: 12px; }
  .metrics a::after { display: none; }
  .metrics span { font-size: 11px; padding: 0; }
  .metrics strong { font-size: 32px; margin: 12px 0; }
  .metrics small { font-size: 10px; line-height: 1.5; }
  .panel { padding: 18px; border-radius: 13px; }
  .panel > .section-heading { margin: -18px -18px 18px; padding: 17px 18px; border-radius: 13px 13px 0 0; }
  .panel > .section-heading:only-child { margin-bottom: -18px; }
  .panel > .section-heading h2::before { margin-right: 8px; }
  .task-row, .task-row:last-child, .appointment { padding: 14px; }
  .day-grid, .stack { gap: 20px; }
  .notice { padding: 14px 16px; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; scroll-behavior: auto !important; } }
@media print {
  :root { color-scheme: light; --bg: #fff; --panel: #fff; --ink: #111; --muted: #444; --line: #bbb; }
  body { background: #fff; }
  .panel, .metrics a, .soft-panel { background: #fff; box-shadow: none; }
  .metrics a::after { display: none; }
  .footer { margin-top: 20px; }
}
