/* Sunny: the approved warm, colorful workspace design.
   Keep the existing component contracts and theme toggle. */
@font-face {
  font-family: Satoshi;
  src: url('/static/fonts/satoshi-400.woff2') format('woff2');
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: Satoshi;
  src: url('/static/fonts/satoshi-500.woff2') format('woff2');
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}
@font-face {
  font-family: Satoshi;
  src: url('/static/fonts/satoshi-700.woff2') format('woff2');
  font-style: normal;
  font-weight: 700 900;
  font-display: swap;
}

:root {
  color-scheme: light;
  --paper: #fffaf2;
  --paper-2: #faf3e8;
  --card: #fffefd;
  --field: #ffffff;
  --ink: #2d293b;
  --ink-soft: #72667e;
  --on-accent: #352839;
  --sky: #d9e7ff;
  --sky-deep: #4b6eab;
  --sun: #ffeba4;
  --sun-deep: #946416;
  --leaf: #d3f0dc;
  --leaf-deep: #28764d;
  --grape: #e8ddff;
  --grape-deep: #7450b4;
  --coral: #ffd8bd;
  --coral-deep: #b4653d;
  --tomato: #ffe3dd;
  --tomato-deep: #b5443e;
  --pink: #ffdce9;
  --pink-deep: #a34f79;
  --mint: #def2e5;
  --mint-deep: #2d7a56;
  --pop-violet: #8862c8;
  --pop-cyan: #d9e7ff;
  --pop-yellow: #ffdc69;
  --pop-pink: #ffdce9;
  --pop-lime: #d3f0dc;
  --pop-red: #bd4642;
  --hover: #f7f0fc;
  --chip-bg: #fff2c6;
  --chip-ink: #795b23;
  --tint-grape: #efe5ff;
  --code-bg: #fffefd;
  --code-ink: #4c3d5c;
  --codechip-bg: #f0e8fc;
  --console-bg: #f8f4fd;
  --todo-done-bg: #edf6e7;
  --danger-bg: #ffebe5;
  --badge-closed-bg: #eee9f0;
  --role-write-bg: #def2e5;
  --role-read-bg: #e5edff;
  --link: #6744b2;
  --repo-accent: #6744b2;
  --line: #ddcfe5;
  --line-strong: #bda7ce;
  --line-faint: #eae1ed;
  --overlay: #b4a1c466;
  --dots: #94759b17;
  --blob-a: #faddab40;
  --blob-b: #dfc9f73b;
  --accent-a: #8063dc;
  --accent-b: #ab8be5;
  --focus: #8054c2;
  --glass: #fffdf9ed;
  --diff-add-bg: #e1f4e6;
  --diff-add-ink: #287847;
  --diff-del-bg: #ffe9e2;
  --diff-del-ink: #b44d3a;
  --diff-hunk-bg: #edf1ff;
  --diff-hunk-ink: #655183;
  --diff-meta-bg: #f5effa;
  --diff-meta-ink: #7a6a88;
  --edge: #53435e;
  --sidebar-bg: #fbf5ec;
  --workspace-bg: #fffefb;
  --panel-shadow: #e6dbea;
  --bw: 1px;
  --r-sm: 8px;
  --r-md: 12px;
  --r-lg: 16px;
  --r-xl: 20px;
  --sh-1: 1px 2px 0 var(--panel-shadow);
  --sh-2: 2px 3px 0 var(--panel-shadow);
  --sh-3: 3px 4px 0 var(--panel-shadow);
  --sh-4: 4px 5px 0 var(--panel-shadow);
  --sh-5: 5px 6px 0 var(--panel-shadow);
  --sh-6: 6px 7px 0 var(--panel-shadow);
  --font: Satoshi, 'Cabinet Grotesk', 'Segoe UI', sans-serif;
  --sidebar-width: 222px;
  --gutter: clamp(22px, 3vw, 44px);
}

[data-theme='dark'] {
  color-scheme: dark;
  --paper: #211c2d;
  --paper-2: #30283e;
  --card: #2b2437;
  --field: #352d43;
  --ink: #f5edf9;
  --ink-soft: #b7a7c7;
  --on-accent: #352839;
  --sky: #303e5b;
  --sky-deep: #9dbcfa;
  --sun: #504124;
  --sun-deep: #f7d68d;
  --leaf: #2b4639;
  --leaf-deep: #91d8af;
  --grape: #46325c;
  --grape-deep: #c9a9f1;
  --coral: #54362e;
  --coral-deep: #f1b39a;
  --tomato: #573236;
  --tomato-deep: #f0a5a0;
  --pink: #51324a;
  --pink-deep: #eeb3d1;
  --mint: #2b453e;
  --mint-deep: #a0d6b5;
  --pop-violet: #ae8bdf;
  --pop-cyan: #303e5b;
  --pop-yellow: #ffdc69;
  --pop-pink: #51324a;
  --pop-lime: #2b4639;
  --pop-red: #eda19a;
  --hover: #3b2f4a;
  --chip-bg: #473b27;
  --chip-ink: #f7d68d;
  --tint-grape: #46325c;
  --code-bg: #25202f;
  --code-ink: #e4d6ef;
  --codechip-bg: #443650;
  --console-bg: #211c2b;
  --todo-done-bg: #2b4034;
  --danger-bg: #513236;
  --badge-closed-bg: #41384b;
  --role-write-bg: #2b4639;
  --role-read-bg: #303e5b;
  --link: #c9a9f1;
  --repo-accent: #c9a9f1;
  --line: #50435f;
  --line-strong: #806696;
  --line-faint: #40354c;
  --overlay: #140e22aa;
  --dots: #baa1d117;
  --blob-a: #9a744a18;
  --blob-b: #8f5fcc18;
  --accent-a: #ba96e6;
  --accent-b: #8970c2;
  --focus: #d6b3fa;
  --glass: #2b2437f2;
  --diff-add-bg: #2d4738;
  --diff-add-ink: #a2deb5;
  --diff-del-bg: #503036;
  --diff-del-ink: #f1b0a8;
  --diff-hunk-bg: #313d55;
  --diff-hunk-ink: #b9caeb;
  --diff-meta-bg: #352b40;
  --diff-meta-ink: #b7a7c7;
  --edge: #b69ac7;
  --sidebar-bg: #272031;
  --workspace-bg: #251f2f;
  --panel-shadow: #1a1325;
  --sh-1: 1px 2px 0 var(--panel-shadow);
  --sh-2: 2px 3px 0 var(--panel-shadow);
  --sh-3: 3px 4px 0 var(--panel-shadow);
  --sh-4: 4px 5px 0 var(--panel-shadow);
  --sh-5: 5px 6px 0 var(--panel-shadow);
  --sh-6: 6px 7px 0 var(--panel-shadow);
}

html { scroll-padding-top: 86px; }
body { background-image: none; font-weight: 400; }
body.app-mode { background: var(--workspace-bg); }
body.app-mode::before { display: none; }
button, input, select, textarea { font-family: var(--font); }
button, .stat-card { color: var(--ink); }
.ic { stroke-width: 1.7; }
.skip-link { position: fixed; top: 12px; left: 16px; z-index: 600; padding: 12px 18px; color: var(--on-accent); background: var(--pop-yellow); border: 1px solid var(--edge); border-radius: 10px; transform: translateY(-180%); }
.skip-link:focus { transform: translateY(0); }

/* Shared surfaces: retain functional colors and editor formatting. */
:is(.tbl,.svc-card,.modal-card,.readme,.repo-card,.repo-filters,.repo-head,
    .notes-toolbar,.note-card,.todo,.gd-side,.gd-main,.gd-item,.gd-menu,
    .gd-ctx,.gd-selbar,.gd-detail-row,.sh-card,.sh-toolbar,.sh-toolbar2,
    .board-toolbar,.board-wrap,.board-card,.board-thumb,.help-nav,
    .settings-card,.release,.issue-detail,.comment,.up-card,.repo-terminal) {
  border-color: var(--line);
}
:is(input:not([type='checkbox']):not([type='color']), textarea, select) {
  border-color: var(--line-strong);
  border-radius: 10px;
  box-shadow: none;
  font-weight: 400;
}
input::placeholder,textarea::placeholder { color: var(--ink-soft); opacity: .85; }
input:focus,textarea:focus,select:focus { border-color: var(--focus); box-shadow: 0 0 0 3px color-mix(in srgb,var(--focus) 13%,transparent); }
input[type='checkbox'] { border-color: var(--line-strong); border-radius: 5px; box-shadow: none; }
input[type='checkbox']:hover { box-shadow: 1px 2px 0 var(--panel-shadow); }
input[type='checkbox']:checked { background: var(--pop-violet); border-color: var(--pop-violet); box-shadow: none; }
input[type='checkbox']:checked::after { border-color: var(--card); }
.btn { border-color: var(--edge); border-radius: 10px; box-shadow: 2px 3px 0 var(--edge); font-weight: 700; font-size: 13px; padding: 10px 16px; transition: transform .2s,box-shadow .2s,background .2s; }
.btn:hover { transform: translate(-1px,-2px); box-shadow: 4px 5px 0 var(--edge); }
.btn:active { transform: translate(2px,2px); box-shadow: none; }
.btn.primary,.btn.primary:hover { background: var(--pop-yellow); color: var(--on-accent); border-color: var(--edge); }
.btn.ghost { border-color: transparent; box-shadow: none; background: transparent; font-weight: 500; }
.btn.ghost:hover { background: var(--hover); border-color: var(--line); box-shadow: none; transform: translateY(-1px); }
.btn.danger { background: var(--danger-bg); color: var(--tomato-deep); border-color: var(--tomato-deep); box-shadow: none; }
[data-theme='dark'] .btn.danger { color: var(--tomato-deep); }
.btn.small { font-size: 12px; border-radius: 8px; }
.error { color: var(--tomato-deep); }
.badge { border-color: var(--line); border-radius: 6px; font-size: 11px; font-weight: 500; }
.badge.priv,.badge.err,.badge.danger,[data-theme='dark'] .badge.priv,[data-theme='dark'] .badge.err,[data-theme='dark'] .badge.danger { color: var(--tomato-deep); background: var(--danger-bg); }
.badge.ok,.badge.open,.badge.pub { background: var(--leaf); color: var(--leaf-deep); }
.badge.admin,.badge.run { background: var(--sun); color: var(--sun-deep); }
.topic { border-color: var(--line); background: var(--grape); color: var(--grape-deep); }
.modal { backdrop-filter: blur(8px); }
.modal-card { background: var(--paper); border-radius: 18px; box-shadow: 6px 7px 0 var(--panel-shadow),0 24px 80px #5c3c7122; }
.modal-card h3 { font-weight: 700; }
.toast { background: var(--sun); color: var(--sun-deep); border-color: var(--line-strong); box-shadow: var(--sh-3); }
.toast.err { background: var(--danger-bg); color: var(--tomato-deep); }

/* Sign-in uses the same warm palette and wide, two-line headline. */
.auth-wrap { min-height: 100dvh; padding-block: 90px; background: radial-gradient(ellipse at 8% 25%,var(--blob-a),transparent 52%),radial-gradient(ellipse at 95% 65%,var(--blob-b),transparent 55%); }
.auth-stage { max-width: 1160px; grid-template-columns: minmax(0,1.35fr) minmax(0,1fr); gap: 66px; }
.auth-left { gap: 23px; }
.auth-brand { width: 53px; height: 55px; border-radius: 14px; border-color: var(--edge); box-shadow: 3px 3px 0 var(--edge); }
.auth-brand .mascot { width: 38px; height: 38px; animation: none; }
.auth-wordmark { font-size: 11px; font-weight: 700; letter-spacing: .11em; margin-top: -9px; color: var(--ink); }
.auth-title { max-width: 100%; font: 700 clamp(35px,4.15vw,60px)/1.1 var(--font); letter-spacing: -.05em; text-wrap: initial; }
.auth-title span { color: var(--grape-deep); }
.auth-sub { border: 0; padding: 0; line-height: 1.8; font-size: 15px; font-weight: 400; }
.auth-accordion { border: 0; background: transparent; box-shadow: none; gap: 9px; height: 130px; overflow: visible; margin-top: 10px; }
.acc-slice { background: var(--acc-fill); border: 1px solid var(--line-strong); border-radius: 14px; overflow: hidden; padding: 15px; }
.acc-slice:last-child { border-right: 1px solid var(--line-strong); }
.acc-1 { --acc-fill: var(--grape); }
.acc-2 { --acc-fill: var(--sky); }
.acc-3 { --acc-fill: var(--leaf); }
.acc-4 { --acc-fill: var(--coral); }
.acc-slice .ic { width: 23px; height: 23px; }
.acc-body { display: block; font-weight: 400; font-size: 12px; line-height: 1.7; padding: 16px; }
.acc-body b { font-weight: 700; }
.acc-label { letter-spacing: 0; font-weight: 700; }
.acc-slice:focus-visible { outline: 2px solid var(--focus); outline-offset: 4px; }
.auth-card { rotate: 0deg; width: 100%; max-width: 415px; border-color: var(--line-strong); background: var(--card); padding: 32px; box-shadow: 7px 8px 0 var(--panel-shadow); }
.auth-welcome { font-size: 26px; letter-spacing: -.045em; line-height: 1.25; font-weight: 700; }
.auth-intro { font-size: 13px; line-height: 1.7; color: var(--ink-soft); margin: 10px 0 25px; }
.auth-label { display: block; font-size: 12px; color: var(--ink-soft); margin: 15px 0 8px; }
.auth-card input { padding: 12px 14px; margin-bottom: 5px; }
.auth-card .full { margin-top: 20px; }
.auth-private { display: flex; gap: 8px; align-items: center; justify-content: center; margin-top: 18px; font-size: 10px; color: var(--ink-soft); }
.auth-private .ic { width: 13px; height: 13px; }
.auth-card .error { margin-top: 10px; min-height: 0; }
.mini { border-color: var(--line); box-shadow: none; font-weight: 500; }
.mini:hover,.mini.active { box-shadow: none; transform: none; }
.mini.active { background: var(--grape); color: var(--grape-deep); border-color: var(--line-strong); }

/* App shell: a persistent sidebar and a compact workspace toolbar. */
.topbar { position: fixed; inset: 0 auto 0 0; width: var(--sidebar-width); max-width: none; height: 100dvh; margin: 0; padding: 28px 15px 18px; display: flex; flex-direction: column; align-items: stretch; gap: 0; background: var(--sidebar-bg); border: 0; border-right: 1px solid var(--line); border-radius: 0; box-shadow: none; z-index: 8; }
.brand { gap: 10px; font-size: 12px; font-weight: 700; letter-spacing: .055em; text-transform: uppercase; padding: 0 9px; }
.brand .mascot { width: 30px; height: 32px; padding: 4px; flex-shrink: 0; background: var(--pop-yellow); border: 1px solid var(--edge); border-radius: 9px; box-shadow: 2px 2px 0 var(--edge); transform: rotate(-5deg); }
.sidebar-label { margin: 40px 12px 12px; font: 400 9px var(--mono); letter-spacing: .15em; text-transform: uppercase; color: var(--ink-soft); }
.topbar nav { display: flex; flex: 1; min-height: 0; flex-direction: column; flex-wrap: nowrap; gap: 6px; overflow-y: auto; overflow-x: hidden; padding: 0 1px 12px; }
.navbtn { flex-shrink: 0; justify-content: flex-start; gap: 12px; width: 100%; min-height: 42px; padding: 11px 14px; border: 1px solid transparent; font: 500 13px var(--font); background: transparent; border-radius: 9px; }
.navbtn .ic { width: 18px; height: 18px; }
.navbtn:hover { border-color: var(--line); background: var(--hover); }
.navbtn.active,.navbtn[data-view].active { background: var(--grape); border-color: var(--line-strong); color: var(--grape-deep); box-shadow: none; }
.navbtn[data-view='files'] .ic { color: var(--sun-deep); }
.navbtn[data-view='notes'] .ic { color: var(--pink-deep); }
.navbtn[data-view='todos'] .ic { color: var(--leaf-deep); }
.navbtn[data-view='board'] .ic { color: var(--coral-deep); }
.navbtn[data-view='sheets'] .ic { color: var(--mint-deep); }
.navbtn[data-view='repos'] .ic { color: var(--sky-deep); }
.userbox { flex: 0 0 auto; display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0 0; padding: 18px 7px 0; border-top: 1px solid var(--line); }
#whoami { order: -2; display: block; width: 100%; margin-bottom: 3px; overflow: hidden; text-overflow: ellipsis; padding: 0; background: transparent; border: 0; box-shadow: none; font: 500 12px var(--font); color: var(--ink); }
#app-version { order: 5; width: 100%; border: 0; background: transparent; color: var(--ink-soft); padding: 3px 0 0; font: 400 9px var(--mono); }
.userbox .btn { font-size: 11px; padding: 7px; min-height: 32px; }
.userbox .icon-only { width: 32px; }
.workspace-toolbar { position: sticky; top: 0; z-index: 7; margin-left: var(--sidebar-width); width: calc(100% - var(--sidebar-width)); min-height: 74px; display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 14px var(--gutter); background: var(--glass); backdrop-filter: blur(14px); border-bottom: 1px solid var(--line-faint); }
.workspace-location { display: flex; align-items: center; gap: 12px; font-size: 12px; color: var(--ink-soft); white-space: nowrap; }
.workspace-location strong { color: var(--ink); font-weight: 500; }
.workspace-tools { display: flex; align-items: center; gap: 24px; }
.workspace-search { display: flex; align-items: center; gap: 9px; padding: 7px 0; border: 0; background: none; color: var(--ink-soft); font: 400 12px var(--font); cursor: pointer; }
.workspace-search .ic { width: 16px; height: 16px; }
.workspace-search kbd { font: 400 9px var(--mono); border: 1px solid var(--line); padding: 3px 5px; border-radius: 4px; }
.workspace-sync { display: flex; align-items: center; gap: 7px; font-size: 10px; color: var(--sun-deep); white-space: nowrap; }
.workspace-sync i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.workspace-sync[data-state='connected'] { color: var(--leaf-deep); }
.workspace-avatar { display: grid; place-items: center; flex-shrink: 0; width: 30px; height: 30px; font: 700 11px var(--font); background: var(--sun); color: var(--sun-deep); border: 1px solid color-mix(in srgb,var(--sun-deep) 25%,transparent); border-radius: 50%; }
.app-main { width: calc(100% - var(--sidebar-width)); max-width: none; margin: 0 0 60px var(--sidebar-width); padding: 34px var(--gutter) 30px; min-width: 0; overflow-x: clip; }
.app-main:focus { outline: none; }
.view { min-width: 0; }
.view-head { margin-bottom: 26px; }
.view-head h2 { font-size: 29px; font-weight: 700; letter-spacing: -.045em; text-transform: none; gap: 12px; line-height: 1.25; }
.view .view-head h2 { box-shadow: none !important; }
.view-head h2 .ic { width: 24px; height: 24px; color: var(--grape-deep); }
#view-files .view-head h2 .ic { color: var(--sun-deep); }
#view-notes .view-head h2 .ic { color: var(--pink-deep); }
#view-todos .view-head h2 .ic { color: var(--leaf-deep); }
#view-board .view-head h2 .ic { color: var(--coral-deep); }
#view-sheets .view-head h2 .ic { color: var(--mint-deep); }
#view-repos .view-head h2 .ic { color: var(--sky-deep); }

/* Dashboard values and activity continue to come from /api/summary. */
.dash-hero { border: 0; border-radius: 0; box-shadow: none; background: transparent; overflow: visible; padding: 8px 0 0; margin-bottom: 32px; flex-wrap: nowrap; align-items: center; }
.dash-hero::before { display: none; }
.dash-greet { padding: 0; min-width: 0; }
.dash-greet h2 { max-width: none; font-size: clamp(26px,2.4vw,36px); font-weight: 700; letter-spacing: -.045em; line-height: 1.25; overflow-wrap: anywhere; }
.dash-greet .muted { margin-top: 10px; font-size: 13px; font-weight: 400; }
.dash-date { padding: 8px 11px; border: 1px solid var(--line); border-radius: 7px; background: var(--paper-2); font: 400 10px var(--mono); text-transform: uppercase; color: var(--ink-soft); white-space: nowrap; }
.stat-grid { grid-template-columns: repeat(6,minmax(0,1fr)); gap: 12px; margin-bottom: 32px; }
.stat-card { position: relative; display: block; padding: 20px 17px 18px; border-color: color-mix(in srgb,var(--grape-deep) 14%,transparent); border-radius: 14px; background: var(--grape); text-align: left; box-shadow: none; min-width: 0; font-family: var(--font); }
.stat-card:nth-child(2) { background: var(--sun); }
.stat-card:nth-child(3) { background: var(--coral); }
.stat-card:nth-child(4) { background: var(--pink); }
.stat-card:nth-child(5) { background: var(--mint); }
.stat-card:nth-child(6) { background: var(--sky); }
.stat-card:hover { transform: translateY(-3px); box-shadow: var(--sh-3); }
.stat-card:active { transform: translateY(1px); box-shadow: none; }
.stat-ico,.stat-ico[class] { position: absolute; top: 19px; right: 16px; width: 18px; height: 18px; border: 0; border-radius: 0; box-shadow: none; background: transparent; color: var(--grape-deep); }
.stat-ico .ic { width: 17px; height: 17px; }
.stat-ico.c-sun { color: var(--sun-deep); }
.stat-ico.c-leaf { color: var(--coral-deep); }
.stat-ico.c-mint { color: var(--pink-deep); }
.stat-ico.c-grape { color: var(--mint-deep); }
.stat-ico.c-pink { color: var(--sky-deep); }
.stat-body { display: flex; flex-direction: column; gap: 0; }
.stat-lbl { order: -1; font: 400 11px var(--font); letter-spacing: 0; text-transform: none; margin: 0 23px 17px 0; color: var(--ink-soft); }
.stat-num { font: 700 34px/1.1 var(--font); font-variant-numeric: tabular-nums; letter-spacing: -.045em; }
.stat-sub { margin-top: 9px; font: 400 10px/1.6 var(--font); min-height: 16px; }
.dash-cols { grid-template-columns: minmax(0,1.6fr) minmax(0,1fr); gap: 24px; }
.dash-card { border: 0; border-radius: 0; box-shadow: none; background: transparent; padding: 0; min-width: 0; }
.dash-card h3 { display: flex; align-items: center; font-size: 15px; font-weight: 500; letter-spacing: -.01em; text-transform: none; background: transparent; border: 0; border-radius: 0; box-shadow: none; padding: 0; margin-bottom: 18px; }
.dash-activity-card { grid-row: span 2; }
.dash-activity-card h3 .ic,.dash-todos-card h3 .ic { color: var(--grape-deep); }
.act-row { padding: 15px 0; border-bottom: 1px solid var(--line-faint); border-radius: 0; gap: 12px; }
.act-row:hover { background: var(--paper-2); }
.act-ico { width: 34px; height: 35px; border: 0; border-radius: 10px; }
.act-ico.t-file { background: var(--sun); color: var(--sun-deep); }
.act-ico.t-note { background: var(--grape); color: var(--grape-deep); }
.act-ico.t-commit { background: var(--sky); color: var(--sky-deep); }
.act-ico.t-repo { background: var(--mint); color: var(--mint-deep); }
.act-title { font-size: 12px; font-weight: 500; display: block; }
.act-sub { display: block; font-size: 11px; font-weight: 400; margin-top: 5px; }
.act-time { font: 400 9px var(--mono); }
.quick-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.quick-actions .btn { display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 14px; padding: 17px; font-size: 12px; font-weight: 500; border-color: var(--line-faint); background: var(--paper-2); border-radius: 11px; box-shadow: none; text-align: left; }
.quick-actions .btn .ic { color: var(--grape-deep); width: 19px; height: 19px; }
.quick-actions .btn:nth-child(2) { background: color-mix(in srgb,var(--pink) 40%,var(--card)); }
.quick-actions .btn:nth-child(3) { background: color-mix(in srgb,var(--leaf) 40%,var(--card)); }
.quick-actions .btn:nth-child(4) { background: color-mix(in srgb,var(--sky) 50%,var(--card)); }
.quick-actions .btn:nth-child(5) { grid-column: 1/-1; flex-direction: row; align-items: center; padding-block: 12px; background: color-mix(in srgb,var(--grape) 35%,var(--card)); }
.quick-actions .btn:hover { box-shadow: var(--sh-2); transform: translateY(-2px); }
.workspace-owned { display: flex; align-items: center; gap: 7px; font-size: 10px; color: var(--ink-soft); margin-top: 15px; }
.workspace-owned .ic { width: 12px; height: 12px; }
.mini-todo { padding: 12px 0; border-bottom-width: 1px; font-size: 12px; font-weight: 400; }
.dash-empty { font-size: 13px; font-weight: 400; line-height: 1.8; padding: 23px 20px; border: 1px dashed var(--line); border-radius: 12px; background: var(--paper); }

/* Drive and writing modules. */
.gd-wrap { grid-template-columns: 168px minmax(0,1fr); gap: 22px; }
.gd-side { top: 96px; background: var(--paper); border-radius: 14px; box-shadow: none; padding: 12px; }
.gd-sidenav { border-radius: 8px; font-weight: 500; font-size: 12px; padding: 10px; }
.gd-sidenav.active { background: var(--grape); color: var(--grape-deep); border-color: var(--line-strong); box-shadow: none; }
.gd-main { min-width: 0; border-radius: 14px; box-shadow: none; }
.gd-toolbar { gap: 14px; border-color: var(--line); box-shadow: none; }
.gd-tools { gap: 8px; }
.gd-tools input { min-width: 120px; font-size: 12px; }
.gd-tools select { font-size: 12px; padding-inline: 8px 28px; }
.gd-dropzone { color: var(--ink-soft); border-color: var(--line-strong); background: var(--paper); font-size: 12px; font-weight: 400; border-radius: 10px; }
.gd-item { border-radius: 12px; box-shadow: none; background: var(--card); }
.gd-item:hover { box-shadow: var(--sh-3); transform: translateY(-2px); }
.gd-card { border-color: var(--line); border-radius: 13px; box-shadow: none; }
.gd-card:hover { transform: translateY(-2px); box-shadow: var(--sh-3); }
.gd-card-name { font-size: 13px; font-weight: 500; }
.gd-card-sub { font-size: 10px; font-weight: 400; }
.gd-store-bar,.gd-bw-bar { height: 5px; border: 0; background: var(--line-faint); border-radius: 8px; }
.gd-store-fill { border: 0; background: var(--accent-a); }
.gd-storage .hint { font-size: 10px; font-weight: 400; font-family: var(--font); line-height: 1.8; }
.gd-thumb { border-color: var(--line-faint); background: var(--paper-2); }
.gd-item.folder { background: var(--grape); }
.gd-name { font-weight: 500; }
.gd-menu,.gd-ctx { box-shadow: var(--sh-4),0 12px 40px #69437e17; }
.gd-selbar { box-shadow: var(--sh-3); }
.notes-toolbar,.repo-filters { padding: 12px; background: var(--paper); box-shadow: none; border-radius: 12px; }
.notes-count { border-color: var(--line); font-weight: 400; }
.notes-board { columns: 240px 4; padding-top: 4px; }
.note-card { border-radius: 15px; rotate: none !important; padding: 24px 22px 18px; box-shadow: var(--sh-2); }
.note-card:nth-child(4n+1) { background: var(--sun); }
.note-card:nth-child(4n+2) { background: var(--grape); }
.note-card:nth-child(4n+3) { background: var(--mint); }
.note-card:nth-child(4n+4) { background: var(--pink); }
.note-card::before { display: none; }
.note-card h3 { font-size: 18px; font-weight: 700; }
.note-card p { color: var(--ink-soft); font-size: 13px; font-weight: 400; }
.note-card:hover { transform: translateY(-3px) rotate(-.4deg); box-shadow: var(--sh-4); }
.note-foot small,.note-card p .muted { color: var(--ink-soft); font-weight: 400; }
.note-chip { background: var(--card); color: var(--ink-soft); border: 1px solid var(--line); font-weight: 400; }
.todo { box-shadow: none; padding: 17px 18px; border-radius: 12px; }
.todo span { font-weight: 400; font-size: 14px; }
.todo:hover { transform: translateY(-1px); box-shadow: var(--sh-2); }
.todo.done { opacity: 1; }
.tbl { box-shadow: none; }
.tbl th { background: var(--paper-2); border-color: var(--line); font-weight: 500; text-transform: none; letter-spacing: 0; font-size: 12px; }
.tbl td { font-weight: 400; border-bottom-width: 1px; font-size: 13px; }
.tbl .btn { font-size: 11px; }

/* Real canvases and spreadsheet cells retain their saved colors. */
.board-toolbar { background: var(--paper-2); box-shadow: none; border-radius: 13px 13px 0 0; }
.board-wrap { box-shadow: none; border-radius: 0 0 13px 13px; }
.board-card { background: var(--card); box-shadow: var(--sh-2); border-radius: 15px; }
.board-thumb { background: var(--paper); border-radius: 11px; }
.board-card h3 { font-weight: 700; font-size: 16px; }
.sh-card { background: var(--leaf); box-shadow: none; border-radius: 13px; }
.sh-card:hover { box-shadow: var(--sh-3); }
.sh-toolbar { background: var(--leaf); box-shadow: none; }
.sh-toolbar2,.sh-fxbar { background: var(--paper); border-color: var(--line); box-shadow: none; }
.sh-fx-label { border-color: var(--line); }
.sh-grid-wrap { border-color: var(--line); box-shadow: none; }
.sh-grid { border-color: var(--line); box-shadow: none; }
.sh-toolbar2 select { width: auto; max-width: 140px; flex: 0 1 auto; margin: 0; padding: 5px 25px 5px 9px; font-size: 11px; }
.sh-namebox { border-radius: 0 !important; color: var(--on-accent); }
.sh-fx { border-radius: 0 !important; }
.sh-toolbar .btn,.board-toolbar .btn { font-size: 11px; }
.sh-status { background: var(--paper); border-color: var(--line); }

/* Repository, code, history and administration surfaces. */
.repo-card { background: color-mix(in srgb,var(--sky) 35%,var(--card)); box-shadow: none; border-radius: 15px; }
.repo-card:hover { background: color-mix(in srgb,var(--sky) 60%,var(--card)); box-shadow: var(--sh-3); transform: translateY(-3px); }
.repo-avatar { background: var(--sky); color: var(--sky-deep); border-color: var(--line-strong); box-shadow: var(--sh-1); }
.repo-card-head h3 { font-weight: 700; font-size: 17px; }
.repo-desc,.repo-card-foot { font-weight: 400; }
#repo-head { box-shadow: none; border-color: var(--line); border-radius: 15px; }
#repo-head::before { display: none; }
.repo-head-top h2 { font-weight: 700; }
.repo-terminal { background: var(--code-bg); color: var(--code-ink); box-shadow: none; border-radius: 12px; }
.repo-clone { color: var(--code-ink); }
.repo-clone input { color: var(--code-ink); background: var(--field); }
.repo-term-head { border-color: var(--line); }
.term-title { color: var(--on-accent); font-weight: 500; }
.term-dot { width: 8px; height: 8px; border-width: 1px; }
.cmd-hint { color: var(--ink-soft); }
.clone-label { border-color: var(--line); background: var(--paper-2); }
.repo-terminal .btn.small.ghost { border: 1px solid var(--line); box-shadow: none; }
.repo-terminal .btn.small.ghost:hover { background: var(--hover); color: var(--link); border-color: var(--line-strong); }
.hl .k { color: var(--grape-deep); }
.hl .s { color: var(--leaf-deep); }
.hl .c { color: var(--ink-soft); }
.hl .num { color: var(--coral-deep); }
.hl .fn { color: var(--sky-deep); }
.hl .t { color: var(--sun-deep); }
.repo-terminal .repo-clone + .repo-clone { border-color: var(--line); }
.tabs,.filetree,.setup-pre,.admin-create { border-color: var(--line); box-shadow: none; }
.tabbtn { font-weight: 500; border-color: var(--line); }
.stat,.tabcount { border-color: var(--line); font-weight: 500; }
.table-scroll { max-width: 100%; overflow-x: auto; border-radius: 12px; }
.table-scroll .tbl { min-width: 740px; }
.admin-create h3 { font-weight: 700; }
.tabbtn.active { background: var(--grape); color: var(--grape-deep); border-color: var(--line-strong); box-shadow: none; }
.readme { box-shadow: none; border-radius: 12px; }
.readme h1,.readme h2,.readme h3 { text-transform: none; letter-spacing: -.025em; font-weight: 700; }
.readme pre,.file-code,.console { background: var(--code-bg); color: var(--code-ink); border-color: var(--line); box-shadow: none; }
.release,.settings-card,.issue-detail { box-shadow: none; border-radius: 14px; }
.settings-card h3,.help-content h2 { text-transform: none; font-weight: 700; letter-spacing: -.02em; }
.help-nav { box-shadow: none; top: 96px; }
.help-content { min-width: 0; }
.help-content h2 { scroll-margin-top: 96px; }
.up-card { box-shadow: var(--sh-3); border-radius: 12px; }

@media (max-width: 1279px) {
  :root { --sidebar-width: 204px; --gutter: 26px; }
  .stat-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .workspace-tools { gap: 16px; }
  .workspace-search kbd { display: none; }
  .brand { font-size: 11px; gap: 8px; }
  .auth-stage { gap: 40px; }
  .auth-title { font-size: 44px; }
  .gd-toolbar { flex-wrap: wrap; }
  .gd-tools { width: 100%; }
  .gd-tools input { flex: 1; }
}
@media (max-width: 1000px) {
  .workspace-search span { display: none; }
  .dash-date { display: none; }
  .dash-cols { grid-template-columns: 1fr; }
  .dash-activity-card { grid-row: auto; }
  .dash-quick-card { order: -1; }
  .quick-actions { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .quick-actions .btn:nth-child(5) { grid-column: 1/-1; }
  .auth-title { font-size: 38px; }
  .auth-card { padding: 26px; }
  .auth-break { display: none; }
}
@media (max-width: 860px) {
  :root { --sidebar-width: 70px; --gutter: 22px; }
  .topbar { padding: 20px 9px 12px; top: 0; margin: 0; gap: 0; flex-wrap: nowrap; }
  .brand { font-size: 0; padding: 0; gap: 0; justify-content: center; }
  .brand .mascot { width: 31px; height: 33px; }
  .sidebar-label { margin: 28px 0 0; height: 0; overflow: hidden; }
  .topbar nav { order: 0; flex: 1; width: 100%; gap: 7px; padding: 0 0 10px; overflow-y: auto; }
  .navbtn { justify-content: center; padding: 12px 0; width: 100%; min-height: 43px; }
  .navbtn .nl { display: none; }
  .navbtn .ic { width: 18px; height: 18px; }
  .userbox { justify-content: center; padding: 12px 0 0; margin-top: 8px; gap: 5px; }
  #whoami,#app-version { display: none; }
  .userbox #logout { font-size: 0; width: 34px; }
  .userbox #logout .ic { width: 16px; height: 16px; }
  .workspace-toolbar { min-height: 65px; gap: 10px; }
  .workspace-location { gap: 9px; font-size: 11px; }
  .workspace-sync { font-size: 9px; }
  .workspace-tools { gap: 14px; }
  .app-main { padding-top: 27px; }
  .gd-wrap { grid-template-columns: 1fr; }
  .gd-side { position: static; padding: 9px; }
  .gd-storage { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; }
  .gd-storage .hint { width: 100%; }
  .gd-storage .gd-store-bar,.gd-storage .gd-bw-bar { flex: 1 1 100%; }
  .auth-stage { grid-template-columns: 1fr; max-width: 570px; gap: 32px; }
  .auth-wrap { padding-block: 60px; }
  .auth-left { align-items: center; text-align: center; gap: 18px; }
  .auth-brand { width: 45px; height: 47px; }
  .auth-title { font-size: clamp(33px,5vw,43px); }
  .auth-sub { font-size: 14px; }
  .auth-accordion { height: 95px; max-width: 420px; }
  .auth-card { max-width: 420px; padding: 28px; }
  .auth-right { width: 100%; }
  .grid { grid-template-columns: repeat(auto-fill,minmax(min(250px,100%),1fr)); }
}
@media (max-width: 620px) {
  :root { --sidebar-width: 58px; --gutter: 16px; }
  .topbar { padding: 17px 6px 10px; }
  .brand .mascot { width: 28px; height: 30px; }
  .topbar nav { gap: 5px; }
  .navbtn { border-radius: 8px; }
  .workspace-toolbar { min-height: 60px; padding: 12px 14px; }
  .workspace-location > span { display: none; }
  .workspace-location strong { font-size: 12px; max-width: 130px; overflow: hidden; text-overflow: ellipsis; }
  .workspace-avatar { width: 26px; height: 26px; font-size: 10px; }
  .workspace-tools { gap: 12px; }
  .workspace-sync { display: none; }
  .workspace-search { padding: 6px; }
  .app-main { padding-top: 24px; padding-bottom: 20px; }
  .dash-hero { padding-top: 0; margin-bottom: 23px; }
  .dash-greet h2 { font-size: 24px; line-height: 1.25; }
  .dash-greet .muted { font-size: 11px; line-height: 1.8; }
  .stat-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; margin-bottom: 27px; }
  .stat-card { padding: 15px 12px; border-radius: 11px; }
  .stat-ico,.stat-ico[class] { top: 15px; right: 11px; width: 14px; height: 14px; }
  .stat-ico .ic { width: 14px; height: 14px; }
  .stat-lbl { font-size: 10px; margin-bottom: 15px; margin-right: 19px; }
  .stat-num { font-size: 29px; }
  .stat-sub { font-size: 9px; }
  .dash-cols { gap: 28px; }
  .dash-card h3 { font-size: 14px; margin-bottom: 14px; }
  .quick-actions { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
  .quick-actions .btn { font-size: 11px; padding: 14px 12px; }
  .act-time { display: none; }
  .act-title { font-size: 11px; }
  .act-sub { font-size: 10px; }
  .act-ico { width: 28px; height: 30px; }
  .mini-todo { font-size: 11px; }
  .view-head { gap: 12px; margin-bottom: 20px; }
  .view-head h2 { font-size: 25px; gap: 8px; }
  .view-head h2 .ic { width: 20px; height: 20px; }
  .view-head .btn { font-size: 11px; padding: 9px 11px; }
  .notes-toolbar { padding: 9px; gap: 8px; }
  .notes-toolbar input { min-width: 0; flex: 1 1 100%; width: 100%; font-size: 12px; }
  .notes-toolbar select { max-width: 100%; font-size: 11px; }
  .notes-count { font-size: 10px; padding-inline: 8px; }
  .notes-board { columns: auto 1; }
  .note-card { padding: 20px 17px; }
  .note-card h3 { font-size: 17px; }
  .todo { padding: 13px 10px; gap: 9px; }
  .todo span { font-size: 12px; min-width: 0; overflow-wrap: anywhere; }
  .todo .btn { padding: 6px; }
  #todo-form { gap: 7px; flex-wrap: wrap; }
  #todo-input { min-width: 0; width: 100%; flex: 1 1 130px; font-size: 12px; }
  #todo-form .btn { font-size: 11px; padding: 10px; }
  .gd-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
  .gd-sidenav { font-size: 11px; padding: 8px; }
  .gd-tools { flex-wrap: wrap; }
  .gd-tools input { min-width: 0; width: 100%; flex-basis: 100%; }
  .gd-dropzone { font-size: 11px; padding: 15px 10px; }
  .gd-name { font-size: 11px; }
  .gd-main { overflow-x: auto; }
  .repo-filters { padding: 10px; }
  .repo-filters input { min-width: 0; flex-basis: 100%; width: 100%; }
  .repo-filters select { max-width: 100%; font-size: 12px; }
  .repo-card { padding: 18px 16px; }
  .repo-card-head h3 { font-size: 15px; }
  #repo-head { padding: 18px 14px; }
  .repo-head-top h2 { font-size: 22px; }
  .repo-desc { font-size: 12px; }
  #repo-head .row { flex-wrap: wrap; }
  .clone-cmd { min-width: 0; flex: 1 1 100%; max-width: 100%; }
  .board-hint { white-space: normal; width: calc(100% - 24px); text-align: center; border-color: var(--line); border-radius: 10px; font-size: 9px; }
  .sh-fx { min-width: 0; }
  .sh-namebox { width: 65px; }
  .admin-create { padding: 16px; }
  #user-form { flex-wrap: wrap; }
  #user-form > input { width: 100%; }
  .sh-toolbar,.sh-toolbar2,.board-toolbar { gap: 7px; padding: 10px; }
  .sh-toolbar .btn,.board-toolbar .btn { font-size: 10px; padding: 6px 8px; }
  .sh-grid-wrap { min-height: 280px; }
  .modal { padding: 12px; }
  .modal-card { padding: 23px 19px; max-height: calc(100dvh - 28px); }
  .modal-card h3 { font-size: 22px; }
  .modal-card .row.end { flex-wrap: wrap; }
  .help-content { overflow-wrap: anywhere; }
  .help-content pre { max-width: 100%; overflow: auto; }
  .auth-wrap { padding: 45px 22px; }
  .auth-title { font-size: 33px; }
  .auth-sub { font-size: 12px; }
  .auth-accordion { gap: 6px; height: 88px; }
  .acc-slice { padding: 12px; border-radius: 11px; }
  .acc-slice .ic { width: 19px; height: 19px; }
  .acc-label { font-size: 11px; }
  .acc-body { padding: 10px; font-size: 10px; }
  .auth-card { padding: 25px; }
  .auth-welcome { font-size: 24px; }
  .auth-wordmark { font-size: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .btn,.note-card,.navbtn,.stat-card,.gd-item,.repo-card { transition: none; }
}
