/* CDeX platform shell: accounts, dashboard, stub apps, error pages.
   Tokens match gantt/scenarios/static/scenarios/app.css (Figma). */
@font-face { font-family: "JetBrains Mono"; src: url("fonts/JetBrainsMono-Regular.ttf") format("truetype"); font-weight: 400; font-display: swap; }
@font-face { font-family: "JetBrains Mono"; src: url("fonts/JetBrainsMono-Bold.ttf") format("truetype"); font-weight: 600 700; font-display: swap; }
@font-face { font-family: "Roboto"; src: url("fonts/Roboto-SemiBold-latin.woff2") format("woff2"); font-weight: 500 700; font-display: swap; unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Roboto"; src: url("fonts/Roboto-SemiBold-latin-ext.woff2") format("woff2"); font-weight: 500 700; font-display: swap; unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
:root {
  --bg: #f9f9f9;            /* grey/100 */
  --panel: #ffffff;
  --panel-2: #f9f9f9;
  --line: #d7dce4;          /* slate/300 */
  --line-strong: #b6bece;   /* slate/500 – control borders */
  --text: #40454f;          /* slate/1000 */
  --text-2: #5a6272;        /* slate/800 */
  --muted: #6e788c;
  --primary: #005fcb;
  --primary-hover: #0051ad;
  --primary-soft: #e7f0fb;
  --action: #0074e8;        /* blue/600 – primary buttons */
  --action-hover: #005fcb;  /* blue/700 */
  --shadow: 0 8px 32px rgba(0,0,0,.16);  /* elevation/400 */
  --danger: #d31510;
  --radius: 8px;
  --radius-sm: 4px;
  --mono: "JetBrains Mono", ui-monospace, "SF Mono", "Cascadia Mono",
          Menlo, Consolas, "Liberation Mono", monospace;
  --ui: "Roboto", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;  /* buttons, labels */
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--bg); color: var(--text); font-family: var(--mono); font-size: 13px; line-height: 1.5; }
a { color: var(--primary); text-decoration: none; }
a:hover { text-decoration: underline; }

.topbar { display: flex; align-items: center; height: 62px; padding: 0 24px; background: var(--panel); border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 50; }
.brand { display: flex; align-items: center; color: var(--text); }
.brand:hover { text-decoration: none; }
.brand-logo { height: 38px; width: auto; display: block; }
.brand-divider { width: 1px; height: 26px; background: var(--line-strong); margin: 0 15px; }
.brand-app { font-size: 15px; font-weight: 600; letter-spacing: .01em; }
.topbar-user { margin-left: auto; display: flex; align-items: center; gap: 10px; }
.topbar-user form { margin: 0; }

.content { padding: 26px 32px; max-width: 1200px; margin: 0 auto; }
.page-head { margin-bottom: 22px; }
.page-head h1 { font-size: 26px; font-weight: 700; margin: 0; }
.page-head .sub { color: var(--muted); font-size: 12px; margin-top: 4px; }
.muted { color: var(--muted); }
.small { font-size: 12px; }

.btn { background: var(--panel); border: 1px solid var(--line-strong); color: var(--text); padding: 0 12px; min-height: 32px; border-radius: var(--radius-sm); cursor: pointer; font: 600 12px/1 var(--ui); letter-spacing: .02em; display: inline-flex; align-items: center; justify-content: center; gap: 7px; }
.btn:hover { border-color: var(--primary); color: var(--primary); text-decoration: none; }
.btn.primary { background: var(--action); border-color: var(--action); color: #fff; }
.btn.primary:hover { background: var(--action-hover); border-color: var(--action-hover); color: #fff; }
.btn.tiny { padding: 0 8px; min-height: 24px; font-size: 11px; }
.btn.block { width: 100%; }

input { background: var(--panel); border: 1px solid var(--line-strong); color: var(--text); border-radius: var(--radius-sm); padding: 9px 11px; min-height: 40px; font: inherit; font-size: 13px; width: 100%; }
input:focus { outline: none; border-color: var(--primary); }
.form { display: flex; flex-direction: column; gap: 14px; margin-top: 18px; }
.form label { display: flex; flex-direction: column; gap: 5px; font-size: 12px; color: var(--muted); }

.narrow-wrap { display: flex; justify-content: center; padding: 60px 16px; }
.narrow-card { width: 100%; max-width: 400px; background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 28px 26px; }
.narrow-card h1 { margin: 0 0 6px; font-size: 20px; }
.notice { margin-top: 14px; padding: 10px 12px; border-radius: 7px; font-size: 12px; background: var(--primary-soft); border: 1px solid #c7dcf5; color: var(--text-2); }
.notice.error { background: #fdecee; border-color: #f3c7cd; color: var(--danger); }

.cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 18px; }
.app-card { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 18px; display: flex; flex-direction: column; gap: 10px; color: var(--text); transition: box-shadow .12s, border-color .12s; }
.app-card:hover { border-color: var(--line-strong); box-shadow: 0 6px 20px rgba(26,26,26,.07); text-decoration: none; }
.app-card .title { font-weight: 700; font-size: 15px; }
.app-card .desc { color: var(--muted); font-size: 12px; flex: 1; }
.badge { display: inline-block; align-self: flex-start; padding: 3px 8px; border-radius: var(--radius-sm); font: 600 10px/1.2 var(--ui); letter-spacing: .02em; text-transform: uppercase; background: var(--primary-soft); color: var(--primary); }
.badge.client { background: var(--panel-2); color: var(--muted); border: 1px solid var(--line-strong); }
.empty { color: var(--muted); padding: 40px; text-align: center; }
