:root {
  --bg: #f4f6f8;
  --panel: #ffffff;
  --panel-2: #f8fafc;
  --sidebar: #111827;
  --sidebar-2: #1f2937;
  --text: #18202c;
  --muted: #657184;
  --line: #dde3ea;
  --accent: #2563eb;
  --accent-dark: #1d4ed8;
  --danger: #b42318;
  --danger-bg: #fff1f0;
  --success: #067647;
  --success-bg: #ecfdf3;
  --warning: #b54708;
  --warning-bg: #fff7ed;
  --shadow: 0 8px 24px rgba(15, 23, 42, .08);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--text);
  background: var(--bg);
}
* { box-sizing: border-box; }
html, body { height: 100%; margin: 0; }
body { overflow: hidden; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.hidden { display: none !important; }
.app-shell { display: grid; grid-template-columns: 250px 1fr; height: 100vh; }
.sidebar { background: linear-gradient(180deg, var(--sidebar), #0b1220); color: #fff; display: flex; flex-direction: column; min-width: 0; }
.brand { display: flex; align-items: center; gap: 12px; padding: 22px 20px 18px; border-bottom: 1px solid rgba(255,255,255,.08); }
.brand-mark { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 12px; background: #fff; color: var(--sidebar); font-size: 22px; font-weight: 800; }
.brand strong { display: block; font-size: 18px; letter-spacing: .2px; }
.brand span { display: block; color: #9ca3af; font-size: 11px; margin-top: 2px; letter-spacing: 1px; }
#mainNav { display: flex; flex-direction: column; gap: 4px; padding: 14px 10px; overflow-y: auto; }
.nav-btn, .utility-btn { border: 0; background: transparent; color: #cbd5e1; text-align: left; border-radius: 9px; padding: 10px 12px; display: flex; align-items: center; gap: 11px; }
.nav-btn span { width: 18px; text-align: center; color: #94a3b8; }
.nav-btn:hover, .utility-btn:hover { background: rgba(255,255,255,.07); color: #fff; }
.nav-btn.active { background: #27364f; color: #fff; }
.nav-btn.active span { color: #93c5fd; }
.sidebar-footer { margin-top: auto; padding: 12px 10px 16px; border-top: 1px solid rgba(255,255,255,.08); }
.utility-btn { width: 100%; padding: 8px 12px; font-size: 13px; }
.storage-status { color: #94a3b8; font-size: 11px; padding: 11px 12px 0; display: flex; gap: 7px; align-items: center; }
#storageDot { width: 8px; height: 8px; border-radius: 50%; background: #f59e0b; }
#storageDot.online { background: #22c55e; }
.main-area { display: flex; min-width: 0; flex-direction: column; }
.topbar { min-height: 88px; background: #fff; border-bottom: 1px solid var(--line); padding: 16px 26px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.topbar-title { display: flex; align-items: center; gap: 12px; min-width: 0; }
.eyebrow { text-transform: uppercase; letter-spacing: .12em; font-size: 10px; color: var(--muted); font-weight: 700; }
h1 { margin: 3px 0 0; font-size: 25px; }
.topbar-actions { display: flex; align-items: center; gap: 12px; }
.icon-btn { border: 1px solid var(--line); background: #fff; border-radius: 9px; width: 38px; height: 38px; }
.primary-btn, .secondary-btn, .danger-btn, .ghost-btn { border-radius: 9px; padding: 9px 14px; border: 1px solid transparent; font-weight: 650; }
.primary-btn { background: var(--accent); color: #fff; }
.primary-btn:hover { background: var(--accent-dark); }
.primary-btn:disabled { opacity: .45; cursor: not-allowed; }
.secondary-btn { background: #fff; border-color: var(--line); color: var(--text); }
.secondary-btn:hover { background: var(--panel-2); }
.ghost-btn { background: transparent; border-color: var(--line); color: var(--muted); }
.danger-btn { background: var(--danger-bg); color: var(--danger); border-color: #ffd0cb; }
.small-btn { padding: 6px 9px; font-size: 12px; border-radius: 7px; }
.search-wrap { position: relative; width: 310px; display: flex; align-items: center; gap: 7px; border: 1px solid var(--line); border-radius: 10px; padding: 0 11px; background: #fff; }
.search-wrap input { border: 0; outline: 0; height: 40px; width: 100%; }
.search-results { position: absolute; z-index: 50; top: calc(100% + 7px); left: 0; right: 0; background: #fff; border: 1px solid var(--line); border-radius: 10px; box-shadow: var(--shadow); max-height: 430px; overflow-y: auto; }
.search-result { width: 100%; border: 0; background: #fff; text-align: left; padding: 10px 12px; border-bottom: 1px solid #edf0f3; }
.search-result:last-child { border-bottom: 0; }
.search-result:hover { background: var(--panel-2); }
.search-result b { display: block; }
.search-result small { color: var(--muted); }
.save-state { min-width: 70px; color: var(--muted); font-size: 12px; text-align: right; }
.save-state.saving { color: var(--warning); }
.save-state.error { color: var(--danger); }
.content { padding: 24px 26px 44px; overflow: auto; height: calc(100vh - 88px); }
.page-actions { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 16px; align-items: center; }
.filters { display: flex; gap: 9px; flex-wrap: wrap; }
.filters input, .filters select { border: 1px solid var(--line); border-radius: 8px; padding: 8px 10px; background: #fff; }
.grid { display: grid; gap: 16px; }
.grid.cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.grid.cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid.cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.card, .panel { background: var(--panel); border: 1px solid var(--line); border-radius: 13px; box-shadow: 0 1px 2px rgba(15,23,42,.03); }
.card { padding: 18px; }
.card .label { color: var(--muted); font-size: 12px; font-weight: 650; }
.card .value { font-size: 28px; font-weight: 750; margin-top: 5px; }
.card .hint { color: var(--muted); font-size: 11px; margin-top: 4px; }
.panel { padding: 18px; }
.panel h2, .panel h3 { margin: 0; }
.panel-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 14px; }
.panel-head p, .section-sub { margin: 3px 0 0; color: var(--muted); font-size: 12px; }
.table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
table { width: 100%; border-collapse: collapse; }
th { text-align: left; font-size: 11px; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); background: #f8fafc; padding: 11px 12px; border-bottom: 1px solid var(--line); white-space: nowrap; }
td { padding: 11px 12px; border-bottom: 1px solid #edf0f3; vertical-align: top; }
tr:last-child td { border-bottom: 0; }
tbody tr.clickable:hover { background: #f8fbff; cursor: pointer; }
td.numeric, th.numeric { text-align: right; font-variant-numeric: tabular-nums; }
.muted { color: var(--muted); }
.empty-state { padding: 44px 20px; text-align: center; color: var(--muted); border: 1px dashed #cbd5e1; border-radius: 12px; background: rgba(255,255,255,.55); }
.empty-state h3 { color: var(--text); margin: 0 0 5px; }
.badge { display: inline-flex; align-items: center; border-radius: 999px; padding: 4px 8px; font-size: 11px; font-weight: 700; background: #eef2f7; color: #475467; white-space: nowrap; }
.badge.success { background: var(--success-bg); color: var(--success); }
.badge.danger { background: var(--danger-bg); color: var(--danger); }
.badge.warning { background: var(--warning-bg); color: var(--warning); }
.badge.info { background: #eff6ff; color: #1d4ed8; }
.detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 18px; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.field.span-2 { grid-column: 1 / -1; }
.field label { font-size: 11px; font-weight: 700; color: #4b5563; text-transform: uppercase; letter-spacing: .03em; }
.field input, .field select, .field textarea { width: 100%; border: 1px solid var(--line); border-radius: 8px; padding: 9px 10px; background: #fff; color: var(--text); outline: none; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: #93b4f5; box-shadow: 0 0 0 3px rgba(37,99,235,.08); }
.field textarea { min-height: 105px; resize: vertical; }
.money-input, .percent-input { display: flex; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; background: #fff; }
.money-input span, .percent-input span { padding: 9px 10px; background: #f8fafc; color: var(--muted); border-right: 1px solid var(--line); }
.percent-input span { border-left: 1px solid var(--line); border-right: 0; }
.money-input input, .percent-input input { border: 0; border-radius: 0; box-shadow: none !important; }
.detail-meta { display: flex; gap: 10px; flex-wrap: wrap; margin: 0 0 16px; }
.detail-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 18px; }
.inline-list { display: flex; flex-direction: column; gap: 10px; }
.inline-item { border: 1px solid var(--line); border-radius: 10px; padding: 12px; background: #fff; }
.inline-item-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 10px; }
.inline-item .form-grid { grid-template-columns: repeat(4, minmax(0,1fr)); }
.kpi-link { color: var(--accent); text-decoration: none; font-weight: 650; }
.chart { display: flex; align-items: end; gap: 12px; height: 180px; padding: 10px 4px 0; }
.chart-col { flex: 1; min-width: 42px; display: flex; flex-direction: column; height: 100%; justify-content: flex-end; align-items: center; gap: 7px; }
.chart-bar { width: min(54px, 80%); min-height: 2px; border-radius: 6px 6px 2px 2px; background: linear-gradient(180deg, #60a5fa, #2563eb); position: relative; }
.chart-bar span { position: absolute; top: -20px; left: 50%; transform: translateX(-50%); font-size: 10px; white-space: nowrap; color: var(--muted); }
.chart-label { font-size: 10px; color: var(--muted); text-align: center; }
.callout { border-left: 4px solid var(--accent); background: #f6f9ff; padding: 12px 14px; border-radius: 8px; }
.callout.warning { border-color: #f59e0b; background: #fffaf2; }
.report { max-width: 1180px; margin: 0 auto; }
.report-header { display: flex; justify-content: space-between; gap: 20px; align-items: flex-start; padding-bottom: 18px; border-bottom: 2px solid #1f2937; margin-bottom: 18px; }
.report-header h2 { font-size: 28px; margin: 0; }
.report-section { margin-top: 24px; }
.report-section h3 { margin: 0 0 10px; padding-bottom: 7px; border-bottom: 1px solid var(--line); }
.highlight-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.highlight-box { border-radius: 10px; padding: 14px; border: 1px solid var(--line); }
.highlight-box strong { display: block; font-size: 24px; }
.highlight-box.new { background: #eff6ff; }
.highlight-box.win { background: var(--success-bg); }
.highlight-box.loss { background: var(--danger-bg); }
.import-drop { border: 2px dashed #cbd5e1; border-radius: 12px; padding: 32px; text-align: center; background: #fafcff; }
.import-drop input { margin-top: 12px; }
.import-summary { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 10px; margin-top: 16px; }
.import-summary .card .value { font-size: 22px; }
.modal { border: 0; padding: 0; background: transparent; width: min(760px, 92vw); max-height: 90vh; }
.modal::backdrop { background: rgba(15,23,42,.5); backdrop-filter: blur(2px); }
.modal-card { position: relative; background: #fff; border-radius: 14px; padding: 24px; box-shadow: 0 24px 60px rgba(15,23,42,.24); max-height: 90vh; overflow: auto; }
.modal-close { position: absolute; top: 12px; right: 14px; border: 0; background: transparent; font-size: 25px; color: var(--muted); }
.modal h2 { margin-top: 0; }
.toast { position: fixed; z-index: 100; right: 24px; bottom: 24px; background: #101828; color: #fff; padding: 11px 15px; border-radius: 9px; opacity: 0; transform: translateY(10px); pointer-events: none; transition: .18s ease; box-shadow: var(--shadow); }
.toast.show { opacity: 1; transform: translateY(0); }
.pill-row { display: flex; gap: 8px; flex-wrap: wrap; }
.link-button { border: 0; background: none; padding: 0; color: var(--accent); font-weight: 650; text-align: left; }
hr { border: 0; border-top: 1px solid var(--line); margin: 18px 0; }
@media (max-width: 1100px) {
  .app-shell { grid-template-columns: 210px 1fr; }
  .grid.cols-4 { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .detail-layout { grid-template-columns: 1fr; }
  .search-wrap { width: 240px; }
  .inline-item .form-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 780px) {
  body { overflow: auto; }
  .app-shell { display: block; height: auto; }
  .sidebar { position: relative; }
  #mainNav { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .sidebar-footer { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .main-area { min-height: 100vh; }
  .topbar { align-items: flex-start; flex-direction: column; }
  .topbar-actions, .search-wrap { width: 100%; }
  .content { height: auto; }
  .grid.cols-4, .grid.cols-3, .grid.cols-2, .form-grid, .highlight-summary, .import-summary { grid-template-columns: 1fr; }
  .field.span-2 { grid-column: auto; }
}
@media print {
  .sidebar, .topbar, .page-actions, .no-print { display: none !important; }
  .app-shell { display: block; }
  .content { padding: 0; height: auto; overflow: visible; }
  .panel, .card, .table-wrap { box-shadow: none; break-inside: avoid; }
  body { overflow: visible; background: #fff; }
}

/* 1.0.2 calendar, long-range roadmap, and activity views */
.starter-callout { display:flex; justify-content:space-between; gap:16px; margin-bottom:16px; align-items:center; }
.search-result > span { display:block; margin-top:4px; color:var(--muted); font-size:12px; line-height:1.35; }
.clamp-2 { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; max-width:560px; }
.calendar-toolbar { display:flex; justify-content:space-between; align-items:center; gap:14px; margin-bottom:12px; }
.calendar-nav { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.segmented { display:inline-flex; border:1px solid var(--line); background:#fff; border-radius:9px; overflow:hidden; }
.segmented button { border:0; border-right:1px solid var(--line); padding:8px 11px; background:#fff; color:var(--muted); font-weight:650; }
.segmented button:last-child { border-right:0; }
.segmented button.active { background:var(--accent); color:#fff; }
.calendar-legend { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:12px; font-size:11px; }
.calendar-legend span { border-radius:999px; padding:4px 8px; background:#eef2f7; font-weight:700; }
.calendar-month { border:1px solid var(--line); border-radius:12px; overflow:hidden; background:#fff; }
.calendar-weekdays { display:grid; grid-template-columns:repeat(7, minmax(0,1fr)); background:#f8fafc; border-bottom:1px solid var(--line); }
.calendar-weekdays div { padding:9px; text-align:center; color:var(--muted); font-size:11px; font-weight:750; text-transform:uppercase; }
.calendar-grid { display:grid; grid-template-columns:repeat(7, minmax(0,1fr)); }
.calendar-day { min-height:132px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); padding:6px; background:#fff; }
.calendar-day:nth-child(7n) { border-right:0; }
.calendar-day.other-month { background:#fafafa; color:#9ca3af; }
.calendar-day.today { box-shadow:inset 0 0 0 2px rgba(37,99,235,.45); }
.calendar-date { border:0; background:transparent; width:28px; height:28px; border-radius:50%; font-weight:750; color:inherit; }
.calendar-date:hover { background:#eff6ff; color:var(--accent); }
.calendar-day-events { display:flex; flex-direction:column; gap:3px; margin-top:4px; }
.calendar-event { width:100%; border:0; border-left:3px solid #64748b; background:#f8fafc; border-radius:5px; padding:4px 6px; text-align:left; color:var(--text); overflow:hidden; }
.calendar-event span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:11px; font-weight:650; }
.calendar-event small { display:block; color:var(--muted); margin-top:2px; font-size:10px; }
.calendar-event.approximate { border-style:dashed; opacity:.88; }
.calendar-more { color:var(--muted); font-size:10px; padding-left:6px; }
.kind-engagement { border-color:#7c3aed !important; background:#f5f3ff !important; }
.kind-milestone { border-color:#0f766e !important; background:#f0fdfa !important; }
.kind-award { border-color:#067647 !important; background:#ecfdf3 !important; }
.kind-shipment { border-color:#b54708 !important; background:#fff7ed !important; }
.kind-decision { border-color:#b42318 !important; background:#fff1f0 !important; }
.kind-followup, .kind-action, .kind-activity { border-color:#2563eb !important; background:#eff6ff !important; }
.calendar-week { display:grid; grid-template-columns:repeat(7,minmax(180px,1fr)); gap:10px; overflow-x:auto; }
.calendar-week-day { min-height:420px; background:#fff; border:1px solid var(--line); border-radius:10px; padding:10px; }
.calendar-week-day.today { box-shadow:inset 0 0 0 2px rgba(37,99,235,.35); }
.calendar-week-day header { padding-bottom:8px; border-bottom:1px solid var(--line); margin-bottom:8px; }
.calendar-week-day .calendar-event { margin-bottom:6px; }
.agenda-list { background:#fff; border:1px solid var(--line); border-radius:12px; overflow:hidden; }
.agenda-date { display:flex; justify-content:space-between; padding:10px 14px; background:#f8fafc; border-top:1px solid var(--line); }
.agenda-date:first-child { border-top:0; }
.agenda-row { display:grid; grid-template-columns:150px 1fr; gap:12px; align-items:start; padding:9px 14px; border-top:1px solid #edf0f3; }
.agenda-row .calendar-event { max-width:760px; }
.agenda-mini { display:flex; flex-direction:column; }
.agenda-mini-row { display:grid; grid-template-columns:115px minmax(0,1fr); gap:4px 10px; padding:9px 0; border-bottom:1px solid #edf0f3; }
.agenda-mini-row:last-child { border-bottom:0; }
.agenda-mini-date { color:var(--muted); font-size:11px; }
.agenda-mini-row small { grid-column:2; color:var(--muted); }
.roadmap-wrap { overflow:auto; border:1px solid var(--line); border-radius:12px; background:#fff; }
.roadmap-table { min-width:1200px; table-layout:fixed; }
.roadmap-table th:not(.roadmap-name), .roadmap-table td:not(.roadmap-name) { width:145px; }
.roadmap-name { position:sticky; left:0; z-index:2; width:260px; min-width:260px; background:#fff; }
thead .roadmap-name { z-index:3; background:#f8fafc; }
.roadmap-name small { display:block; color:var(--muted); margin-top:4px; }
.roadmap-cell { position:relative; min-height:80px; height:88px; padding:7px; background:#fff; }
.roadmap-cell.in-range { background:#f8fbff; }
.roadmap-band { position:absolute; left:0; right:0; top:9px; height:5px; background:#bfdbfe; }
.roadmap-milestones { position:relative; z-index:1; display:flex; flex-direction:column; gap:4px; padding-top:8px; }
.roadmap-milestones button { border:1px solid #cbd5e1; background:#fff; border-radius:6px; padding:4px 5px; text-align:left; }
.roadmap-milestones b { display:block; font-size:10px; line-height:1.2; }
.roadmap-milestones small { display:block; color:var(--muted); font-size:9px; margin-top:2px; }
.roadmap-milestones .award-marker { border-color:#86efac; background:#ecfdf3; }
.checkbox-row { display:flex !important; flex-direction:row !important; align-items:center; gap:8px; text-transform:none !important; letter-spacing:0 !important; }
.checkbox-row input { width:auto !important; }
.connected-stat { display:flex; justify-content:space-between; align-items:center; }
.connected-stat b { font-size:22px; }
.connected-links { display:flex; flex-direction:column; gap:5px; margin-top:8px; }
.milestone-editor .form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
@media (max-width: 1100px) {
  .calendar-toolbar { align-items:flex-start; flex-direction:column; }
  .calendar-day { min-height:112px; }
}
@media (max-width: 780px) {
  .starter-callout { align-items:flex-start; flex-direction:column; }
  .calendar-month { overflow-x:auto; }
  .calendar-weekdays, .calendar-grid { min-width:900px; }
  .agenda-row { grid-template-columns:1fr; }
}

/* Hosted beta additions */
.center-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(140deg,#eef2ff,#f8fafc 50%,#ecfeff)}
.auth-card{width:min(430px,100%);background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px;box-shadow:0 24px 70px rgba(15,23,42,.16)}
.auth-card.wide{width:min(650px,100%)}
.auth-brand{display:flex;align-items:center;gap:14px;margin-bottom:24px}.auth-brand h1{margin:0}.auth-brand p{margin:3px 0 0;color:var(--muted)}
.stack{display:flex;flex-direction:column;gap:14px}.stack label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700;color:var(--muted)}
.stack input,.stack select,.stack textarea{border:1px solid var(--line);border-radius:9px;padding:11px;background:#fff;color:var(--text)}
.auth-links{display:flex;justify-content:space-between;gap:12px;margin-top:18px;flex-wrap:wrap}
.callout{border:1px solid #bfdbfe;background:#eff6ff;border-radius:11px;padding:14px;margin:12px 0;line-height:1.45}.callout p{margin:5px 0 0}.callout.warning{background:var(--warning-bg);border-color:#fed7aa}.callout.danger{background:var(--danger-bg);border-color:#fecaca}.callout.success{background:var(--success-bg);border-color:#bbf7d0}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#f8fafc;border:1px solid var(--line);padding:10px;border-radius:8px;overflow-wrap:anywhere}
.button-row{display:flex;gap:10px;flex-wrap:wrap}.mobile-only{display:none}
.workspace-block{padding:12px 14px;border-bottom:1px solid rgba(255,255,255,.08)}.workspace-block label{display:flex;flex-direction:column;gap:5px;font-size:10px;color:#94a3b8;text-transform:uppercase;letter-spacing:.08em}.workspace-block select{width:100%;background:#182337;color:#fff;border:1px solid #334155;border-radius:8px;padding:8px;text-transform:none;letter-spacing:0}.workspace-role{font-size:11px;color:#93c5fd;margin-top:6px}
.nav-overlay{position:fixed;inset:0;background:rgba(15,23,42,.55);z-index:60}.sidebar{z-index:70}.brand .mobile-only{margin-left:auto;background:transparent;color:#fff;border-color:rgba(255,255,255,.2)}
.empty-state{text-align:center;padding:36px 18px;color:var(--muted)}.empty-state h3{color:var(--text);margin:0 0 6px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field.span-2{grid-column:span 2}.field label{font-size:11px;color:var(--muted);font-weight:750;text-transform:uppercase;letter-spacing:.04em}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:9px 10px;background:#fff;color:var(--text)}.field textarea{min-height:96px;resize:vertical}.field small{font-size:10px}
.money-input,.percent-input{display:flex;align-items:center;border:1px solid var(--line);border-radius:8px;background:#fff}.money-input span,.percent-input span{padding:0 9px;color:var(--muted)}.money-input input,.percent-input input{border:0!important;outline:0}
.detail-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:16px}.detail-actions{display:flex;gap:8px;justify-content:flex-end;margin-bottom:12px}.section-stack{display:flex;flex-direction:column;gap:16px}
.badge input{width:auto}.numeric{text-align:right}.muted{color:var(--muted)}.danger-text{color:var(--danger)}
.record-list{display:flex;flex-direction:column;gap:8px}.record-row{display:grid;grid-template-columns:minmax(200px,2fr) repeat(3,minmax(110px,1fr));gap:12px;align-items:center;padding:13px 14px;border:1px solid var(--line);border-radius:10px;background:#fff}.record-row:hover{border-color:#b9c6d5}.record-row .main b{display:block}.record-row .main small{color:var(--muted)}
.kpi-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}.toolbar .filters{display:flex;gap:8px;flex-wrap:wrap}.toolbar input,.toolbar select{border:1px solid var(--line);border-radius:8px;padding:8px 10px;background:#fff}
.inline-editor{border:1px solid var(--line);border-radius:10px;padding:13px;background:#fafcff}.inline-editor+.inline-editor{margin-top:10px}.inline-editor-head{display:flex;justify-content:space-between;gap:10px;margin-bottom:10px}
.sync-banner{padding:8px 12px;border-radius:8px;font-size:12px}.sync-banner.error{background:var(--danger-bg);color:var(--danger)}
.install-hint{font-size:11px;color:var(--muted);margin-top:8px}.workspace-pill{display:inline-flex;padding:4px 8px;border-radius:999px;background:#eef2ff;color:#3730a3;font-size:11px;font-weight:700}
.member-row{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.drag-note{font-size:11px;color:var(--muted);margin-top:8px}
@media(max-width:900px){.mobile-only{display:inline-grid;place-items:center}.app-shell{display:block}.sidebar{position:fixed;left:-280px;top:0;bottom:0;width:270px;transition:left .2s ease}.sidebar.open{left:0}.topbar{min-height:auto;padding:12px 14px;gap:12px}.topbar-actions{width:100%}.search-wrap{flex:1;width:auto}.content{height:calc(100vh - 128px);padding:16px}.record-row{grid-template-columns:1fr 1fr}.record-row .main{grid-column:1/-1}.kpi-row{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-layout{grid-template-columns:1fr}.sidebar-footer{display:block}}
@media(max-width:560px){.topbar-actions{display:grid;grid-template-columns:1fr auto}.search-wrap{grid-column:1/-1}.save-state{display:none}.content{height:auto;min-height:calc(100vh - 148px)}.form-grid,.kpi-row{grid-template-columns:1fr}.field.span-2{grid-column:auto}.record-row{display:block}.record-row>div{margin-top:8px}.record-row .main{margin-top:0}.calendar-month{overflow-x:auto}.calendar-weekdays,.calendar-grid{min-width:760px}.auth-card{padding:22px}.member-row{grid-template-columns:1fr 1fr}.member-row .member-email{grid-column:1/-1}}
