:root { color-scheme: light; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
body { margin: 0; background: #f5f6f8; color: #172033; }
main { max-width: 1180px; margin: 2rem auto; background: white; padding: 1.5rem; border-radius: 14px; box-shadow: 0 8px 30px #17203318; }
button { background: #2357d8; color: white; border: 0; border-radius: 8px; padding: .7rem 1rem; font-weight: 650; }
button[disabled] { background: #edf0f6; color: #657089; cursor: not-allowed; }
button.danger { background: #a52b32; }
button.secondary { background: #657089; }
.button-link { display: inline-flex; align-items: center; justify-content: center; padding: .62rem .85rem; border-radius: 8px; font-weight: 650; text-decoration: none; }
.secondary-link { color: #27324a; background: #edf0f6; }
input, textarea { width: 100%; box-sizing: border-box; padding: .7rem; margin: .3rem 0 1rem; font: inherit; }
input[type="checkbox"] { width: auto; margin: 0; }
select { padding: .4rem; border: 1px solid #ccd2df; border-radius: 7px; background: white; }
.muted { color: #657089; }
.toolbar { display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; margin: 1rem 0; }
.chip { display: inline-block; padding: .45rem .7rem; border-radius: 999px; background: #edf2ff; color: #23499b; text-decoration: none; font-size: .88rem; }
.chip.active { background: #2357d8; color: white; }
.nav-more { position: relative; margin: 0; }
.nav-more summary { cursor: pointer; list-style: none; }
.nav-more summary::-webkit-details-marker { display: none; }
.nav-more__menu { position: absolute; z-index: 20; top: calc(100% + .35rem); right: 0; min-width: 15rem; padding: .45rem; border: 1px solid #d9deea; border-radius: .75rem; background: white; box-shadow: 0 .5rem 1.5rem rgba(31, 43, 70, .15); }
.nav-more__menu a { display: block; padding: .55rem .65rem; border-radius: .5rem; color: #1f3f87; text-decoration: none; }
.nav-more__menu a:hover, .nav-more__menu a:focus { background: #edf2ff; }
.question-examples { display: flex; flex-wrap: wrap; gap: .35rem .55rem; margin: .85rem 0 0; color: #596780; font-size: .9rem; }
.question-examples span { padding: .25rem .45rem; border-radius: .45rem; background: #f3f5f9; }
.cards { display: grid; grid-template-columns: repeat(4, minmax(110px, 1fr)); gap: .7rem; margin: 1rem 0; }
.card { border: 1px solid #e5e8ef; border-radius: 10px; padding: .8rem; }
.card strong { display: block; font-size: 1.4rem; }
.state-link { color: inherit; text-decoration: none; }
.state-link.active { border-color: #2357d8; box-shadow: inset 0 0 0 1px #2357d8; }
table { width: 100%; border-collapse: collapse; font-size: .9rem; }
th, td { text-align: left; padding: .7rem .55rem; border-bottom: 1px solid #e9ebf1; vertical-align: middle; }
th { color: #657089; font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; }
.actions { display: flex; gap: .3rem; white-space: nowrap; }
.actions button { padding: .38rem .55rem; font-size: .78rem; }
.inline-form { display: flex; gap: .35rem; align-items: center; margin: 0; }
.inline-form button { padding: .42rem .6rem; font-size: .8rem; }
.compact-input { min-width: 12rem; margin: 0; padding: .42rem .55rem; }
.settings-panel { margin: 1rem 0 1.5rem; padding: 1rem; border: 1px solid #e5e8ef; border-radius: 10px; background: #fafbfe; }
.settings-panel h2 { margin-top: 0; }
.settings-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; align-items: start; }
.project-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.project-card { border: 1px solid #e5e8ef; border-radius: 10px; padding: 1rem; }
.project-card h3 { margin: .35rem 0; }
.brief-panel { margin: 1rem 0; padding: 1rem; border: 1px solid #e5e8ef; border-radius: 10px; background: #fff; }
.brief-panel h2 { margin-top: 0; }
.compact-cards { grid-template-columns: repeat(5, minmax(90px, 1fr)); }
.brief-signal { margin: .7rem 0; padding: .8rem; border-left: 4px solid #4469c9; background: #f8faff; }
.brief-signal.hypothesis { border-left-color: #a66b00; background: #fff9ed; }
.brief-signal h3 { margin: .25rem 0; }
.signal-label, .source-label { color: #657089; font-size: .78rem; font-weight: 650; }
.brief-task-list { list-style: none; padding: 0; display: grid; gap: .7rem; }
.brief-task-list li { border-bottom: 1px solid #e5e8ef; padding: .4rem 0 .8rem; }
.brief-task-list h3 { margin: .2rem 0; }
.weekly-client { margin: 1.4rem 0; padding-top: .2rem; border-top: 3px solid #dbe4fa; }
.weekly-client > h2 { color: #23499b; }
details { margin-top: .45rem; }
summary { color: #23499b; cursor: pointer; }
.context-form { min-width: 18rem; padding: .65rem; border: 1px solid #e5e8ef; border-radius: 8px; background: #fafbfe; }
fieldset { margin: .4rem 0 1rem; padding: .8rem; border: 1px solid #ccd2df; border-radius: 8px; }
.checkbox-grid { display: grid; grid-template-columns: repeat(2, minmax(220px, 1fr)); gap: .55rem 1rem; }
.checkbox-grid label { display: flex; gap: .45rem; align-items: center; }
.status-good { color: #245d36; font-weight: 700; }
.notice { margin: .7rem 0; padding: .7rem .9rem; border-radius: 8px; background: #eaf6ee; color: #245d36; }
.panel { margin: 1rem 0; padding: 1rem; border: 1px solid #e5e8ef; border-radius: 10px; background: #fafbfe; }
.panel h2 { margin-top: 0; }
.suggestion-card { margin: .8rem 0; padding: 1rem; border: 1px solid #dbe1ec; border-radius: 10px; background: white; }
.suggestion-heading { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: .8rem; }
.warning { margin: .7rem 0; padding: .7rem .9rem; border: 1px solid #e7b95b; border-radius: 8px; background: #fff8e5; color: #64470b; }
.warning-text { color: #8b5b00; font-weight: 650; }
.confirmation { display: inline-flex; gap: .4rem; align-items: center; white-space: normal; font-size: .86rem; }
.priority-list { list-style: none; margin: 1rem 0; padding: 0; display: grid; gap: .7rem; }
.priority-item { border: 1px solid #e5e8ef; border-radius: 10px; padding: .9rem; }
.priority-item strong { display: block; margin: .2rem 0; }
.priority-kind { display: inline-block; color: #23499b; font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.priority-scope { margin: .25rem 0; font-size: .88rem; }
.score-line { margin: .45rem 0 .2rem; color: #3f4b63; font-size: .88rem; }
.factor-list { margin: .25rem 0 .65rem 1.2rem; padding: 0; color: #657089; font-size: .88rem; }
.priority-controls { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .7rem; }
.priority-controls .inline-form { width: auto; }
.priority-controls button { padding: .38rem .55rem; font-size: .78rem; }
.briefing-form { display: grid; gap: .5rem; max-width: 60rem; margin: 1rem 0; }
.briefing-form textarea { width: 100%; font-family: inherit; font-size: .95rem; line-height: 1.5; padding: .7rem; }
.briefing-form button { justify-self: start; }
.voice-form { border-top: 1px solid #e5e8ef; padding-top: 1rem; margin-top: 1.5rem; }
.voice-form h2 { margin: 0; font-size: 1.05rem; }
.briefing-history { list-style: none; padding: 0; }
.briefing-history li { padding: .6rem 0; border-bottom: 1px solid #e5e8ef; }
.missive-triage { margin: .8rem 0; }
/* Inside Missive's sidebar the workspace page is not wanted: the panel is the
   whole point and the dashboard below it is unreadable at that width. The class
   is set from JavaScript, which is how deleting the old script silently took
   this with it. */
body.missive-embedded { background: white; }
body.missive-embedded main { max-width: none; margin: 0; padding: .9rem; border-radius: 0; box-shadow: none; }
body.missive-embedded .lpm-workspace-intro,
body.missive-embedded .lpm-workspace-content { display: none; }
body.missive-embedded .missive-triage { margin: 0; }
/* Belt and braces: the script always fills the panel, but an empty one
   must not leave a blank sidebar behind it. */
.missive-triage:empty::after { content: "Loading LPM Workflow…"; color: #657089; font-size: .85rem; }
.triage-proposal { padding: .8rem; border: 1px solid #bfe0cd; border-radius: 10px; background: #f3fbf6; }
.triage-proposal.triage-stale { border-color: #d9b382; background: #fdf8f0; }
.triage-staleness { margin: 0 0 .5rem; font-size: .88rem; color: #7a4f0b; }
.triage-proposal.triage-empty { border-color: #e5e8ef; background: #fafbfd; }
.triage-heading { margin: 0 0 .2rem; font-size: 1rem; }
.triage-reason { margin: .2rem 0 .6rem; color: #3d4a5c; }
.triage-decided { margin: .2rem 0 .4rem; font-size: .85rem; }
.triage-analysis { display: grid; gap: .4rem; margin: .7rem 0; padding: .7rem; border-radius: 8px; background: #edf4ff; }
.triage-analysis label { display: grid; gap: .3rem; font-size: .84rem; font-weight: 700; }
.triage-analysis select { width: 100%; box-sizing: border-box; }
.triage-analysis button { width: 100%; }
.triage-analysis p { margin: 0; font-size: .78rem; }
.triage-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
.triage-actions button.primary { border-color: #1c7a4a; background: #1c7a4a; color: white; font-weight: 650; }
.triage-draft { display: grid; gap: .25rem; margin: .7rem 0 0; }
.triage-draft button { justify-self: start; }
.triage-draft span { font-size: .8rem; }
.triage-footnote { margin: .6rem 0 0; font-size: .8rem; }
.triage-feedback { margin: .4rem 0 0; font-size: .88rem; color: #1c7a4a; min-height: 1.1em; }
.waiting-marker-status { margin: .35rem 0 0; font-size: .76rem; }
.waiting-marker-status--unavailable { color: #8b3a2b; }
.automation-control { border-left: .35rem solid #2b5bd7; }
.automation-control--stopped { border-left-color: #a52b32; }
.automation-policy-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: .75rem; }
.automation-policy { display: grid; gap: .25rem; padding: .8rem; border: 1px solid #d9deea; border-radius: .65rem; }
.automation-policy small { color: #657089; }
.automation-row { border-top: 1px solid #d9deea; padding: 1rem 0; }
.automation-row:first-of-type { border-top: 0; }
.automation-row__heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.automation-status { font-weight: 700; }
.automation-status--completed, .automation-status--undone { color: #245d36; }
.automation-status--failed, .automation-status--reconciliation, .automation-status--change_required { color: #8b3a2b; }
.automation-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: .5rem 1rem; }
.automation-facts div { display: grid; gap: .1rem; }
.automation-facts dt { color: #657089; font-size: .8rem; font-weight: 700; text-transform: uppercase; }
.automation-facts dd { margin: 0; }
.automation-row__controls { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.automation-row__controls form { margin: 0; }
.no-send-banner { border-left: .35rem solid #245d36; }
.command-center-lead { font-size: 1.05rem; color: #3f4b63; }
.command-center-section { background: white; }
.command-question { display: grid; grid-template-columns: minmax(13rem, .8fr) minmax(20rem, 1.4fr); gap: 1rem 1.5rem; align-items: end; background: #f6f9ff; border-color: #cfdaf7; }
.command-question h2 { margin: .15rem 0 .35rem; }
.command-question p { margin: 0; }
.command-question-form { display: grid; grid-template-columns: minmax(14rem, 1.6fr) minmax(11rem, 1fr) auto; gap: .6rem; align-items: end; margin: 0; }
.command-question-form label { display: grid; gap: .25rem; color: #3f4b63; font-size: .82rem; font-weight: 700; }
.command-question-form input,
.command-question-form select { width: 100%; box-sizing: border-box; min-height: 2.7rem; margin: 0; }
.command-question-form button { min-height: 2.7rem; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.section-heading h2 { margin: .15rem 0 0; }
.missive-task-form { display: grid; gap: .7rem; padding: 1rem; }
.missive-task-form h2 { margin: 0; font-size: 1.15rem; }
.missive-task-form p { margin: 0; }
.missive-task-form label { display: grid; gap: .28rem; font-size: .88rem; font-weight: 650; }
.missive-task-form input,
.missive-task-form select,
.missive-task-form textarea { width: 100%; box-sizing: border-box; }
.missive-task-form textarea { resize: vertical; }
.missive-task-form-actions { display: grid; grid-template-columns: 1fr 1.4fr; gap: .5rem; margin-top: .2rem; }
.missive-task-form-actions button { width: 100%; min-height: 2.55rem; }
.missive-task-form-actions .secondary { background: #edf0f6; color: #27324a; }
.missive-analysis-result { display: grid; gap: .65rem; }
.missive-analysis-result h2,
.missive-analysis-result p { margin: 0; }
.analysis-facts { display: grid; gap: .45rem; margin: 0; }
.analysis-facts div { display: grid; grid-template-columns: 6.5rem 1fr; gap: .5rem; padding-bottom: .35rem; border-bottom: 1px solid #d8e8de; }
.analysis-facts dt { color: #657089; font-size: .78rem; font-weight: 700; text-transform: uppercase; }
.analysis-facts dd { margin: 0; }
.analysis-task-suggestion { padding: .65rem; border-radius: 8px; background: white; }
.managed-waiting-inline { margin-bottom: .7rem; }
.managed-waiting-inline form { display: grid; gap: .35rem; margin: 0; }
.managed-waiting-inline form button { width: 100%; }
.task-open-link { display: grid; place-items: center; min-height: 2.55rem; padding: 0 .7rem; border: 1px solid #2357d8; border-radius: 8px; color: #2357d8; text-align: center; text-decoration: none; font-weight: 650; }
.waiting-list { display: grid; gap: .85rem; margin: 1rem 0; }
.waiting-card { border: 1px solid #dbe1ec; border-left: 4px solid #4469c9; border-radius: 10px; padding: 1rem; background: white; }
.waiting-card.waiting-due { border-left-color: #a66b00; background: #fffdf8; }
.waiting-card h2 { margin: .25rem 0; font-size: 1.08rem; }
.waiting-card p { margin: .3rem 0; }
.waiting-facts { margin: .7rem 0; padding: .65rem; border-radius: 8px; background: #f7f9fd; }
.waiting-actions { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.waiting-actions form { margin: 0; }
.waiting-actions input[type="date"] { width: auto; margin: 0; }
.public-page { max-width: 760px; margin: 1rem auto; padding: 1rem; }
.public-page h1 { margin-bottom: .5rem; }
.public-page h2 { margin-top: 1.8rem; font-size: 1.2rem; }
.public-page p { line-height: 1.65; }
.public-page .lead { font-size: 1.12rem; color: #42526b; }
.eyebrow { color: #2c5bd8; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.public-links { display: flex; flex-wrap: wrap; gap: 1.1rem; margin-top: 2rem; }
.siri-token-reveal textarea { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .82rem; }
.siri-device { display: grid; gap: .35rem; margin: .7rem 0; }
.siri-device form { margin: .25rem 0 0; }
@media (max-width: 760px) { main { margin: 0; border-radius: 0; padding: 1rem; } .cards { grid-template-columns: repeat(2, 1fr); } .checkbox-grid, .settings-grid, .project-grid, .command-question, .command-question-form { grid-template-columns: 1fr; } table { display: block; overflow-x: auto; } }

/* Integrated LPM Intelligence shell and module surfaces. */
:root { --navy:#102f4a; --navy-2:#173c5c; --ink:#162033; --muted:#61708a; --line:#dce3ec; --canvas:#f4f6f8; --teal:#0d8588; --teal-dark:#086b6e; --blue:#1467d8; --amber:#d98a00; --red:#c9333a; --green:#16835c; }
* { box-sizing: border-box; }
a { color: var(--blue); }
button { cursor: pointer; }
button:hover { filter: brightness(.94); }
input, textarea { border:1px solid #cbd5e1; border-radius:8px; background:#fff; color:var(--ink); }
.public-body { background:#f5f6f8; }
.public-main { max-width:1180px; margin:2rem auto; background:white; padding:1.5rem; border-radius:14px; box-shadow:0 8px 30px #17203318; }
.app-body { background:var(--canvas); color:var(--ink); }
.app-shell { min-height:100vh; display:grid; grid-template-columns:244px minmax(0,1fr); }
.app-sidebar { position:sticky; top:0; height:100vh; display:flex; flex-direction:column; color:#eef6ff; background:linear-gradient(180deg,var(--navy),#0d2941); border-right:1px solid #082035; }
.brand { min-height:70px; display:flex; gap:.75rem; align-items:center; padding:0 1.3rem; color:#fff; text-decoration:none; border-bottom:1px solid #ffffff18; }
.brand-mark { width:34px; height:34px; display:grid; place-items:center; border-radius:9px; background:#fff; color:var(--navy); font-weight:900; font-size:1.1rem; }
.brand strong,.brand small { display:block; }
.brand strong { font-size:1.05rem; letter-spacing:.02em; }
.brand small { margin-top:.05rem; font-size:.69rem; letter-spacing:.16em; color:#b9d0e2; }
.primary-nav { display:grid; gap:.32rem; padding:1.1rem .75rem; }
.primary-nav a,.sidebar-status a { display:flex; align-items:center; gap:.8rem; color:#e9f3fb; text-decoration:none; font-size:.92rem; font-weight:650; border-radius:8px; padding:.72rem .78rem; }
.primary-nav a:hover,.sidebar-status a:hover { background:#ffffff12; }
.primary-nav a span { width:20px; color:#9dc4df; text-align:center; }
.sidebar-status { margin-top:auto; display:grid; gap:.2rem; padding:1rem .75rem 1.3rem; border-top:1px solid #ffffff18; }
.status-dot { width:9px; height:9px; border-radius:50%; background:#27d59c; box-shadow:0 0 0 3px #27d59c22; }
.app-stage { min-width:0; }
.app-topbar { height:70px; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:0 2rem; background:#fff; border-bottom:1px solid var(--line); }
.top-search { width:min(690px,65vw); height:43px; display:flex; align-items:center; gap:.6rem; padding:0 .85rem; border:1px solid #ced8e4; border-radius:10px; background:#fbfcfe; color:var(--muted); }
.top-search input { min-width:0; margin:0; padding:0; border:0; outline:0; background:transparent; }
.topbar-meta { display:flex; align-items:center; gap:1.2rem; color:var(--muted); font-size:.82rem; font-weight:700; text-transform:uppercase; }
.avatar { width:40px; height:40px; display:grid; place-items:center; border-radius:50%; background:#3d4b62; color:#fff; text-decoration:none; font-size:.8rem; }
.app-main { max-width:1440px; margin:0 auto; padding:2rem; background:transparent; border-radius:0; box-shadow:none; }
.page-header { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; margin-bottom:1.45rem; }
.page-header h1 { margin:0; font-size:2.15rem; line-height:1.1; letter-spacing:-.035em; }
.page-header p { margin:.42rem 0 0; color:var(--muted); }
.button,.button-secondary { display:inline-flex; align-items:center; justify-content:center; gap:.4rem; padding:.72rem 1rem; border-radius:8px; font-weight:730; text-decoration:none; }
.button { background:var(--teal); color:#fff; }
.button-secondary { border:1px solid #c7d2df; background:#fff; color:var(--ink); }
.metric-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.8rem; margin:1rem 0 1.25rem; }
.metric-card { min-height:116px; padding:1rem 1.05rem; border:1px solid var(--line); border-radius:11px; background:#fff; }
.metric-card span { color:var(--muted); font-size:.77rem; font-weight:750; text-transform:uppercase; letter-spacing:.05em; }
.metric-card strong { display:block; margin:.5rem 0 .2rem; font-size:1.85rem; }
.metric-card small { color:var(--muted); }
.content-grid { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(300px,.85fr); gap:1rem; }
.content-grid.three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.surface { border:1px solid var(--line); border-radius:12px; background:#fff; box-shadow:0 2px 10px #18324e08; }
.surface-header { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem 1.1rem; border-bottom:1px solid var(--line); }
.surface-header h2,.surface-header h3 { margin:0; font-size:1rem; letter-spacing:.01em; }
.surface-body { padding:1rem 1.1rem; }
.stack { display:grid; gap:.75rem; }
.project-tile,.queue-item,.evidence-card,.change-card,.review-card { border:1px solid var(--line); border-radius:10px; background:#fff; padding:.9rem; }
.project-tile { text-decoration:none; color:inherit; transition:transform 100ms ease,box-shadow 100ms ease; }
.project-tile:hover { transform:translateY(-1px); box-shadow:0 6px 20px #18324e12; }
.project-tile h3,.queue-item h3,.evidence-card h3 { margin:.1rem 0 .35rem; font-size:.98rem; }
.project-meta,.meta-row { color:var(--muted); font-size:.8rem; }
.tag { display:inline-flex; align-items:center; padding:.25rem .48rem; border-radius:999px; background:#edf4ff; color:#1f5fb5; font-size:.7rem; font-weight:750; }
.tag.green { background:#e4f7ef; color:#14704d; }
.tag.amber { background:#fff3d6; color:#995e00; }
.tag.red { background:#ffe5e6; color:#b2252c; }
.tag.slate { background:#edf0f4; color:#4f5e72; }
.section-tabs { display:flex; flex-wrap:wrap; gap:.38rem; margin:0 0 1.2rem; }
.section-tabs a { padding:.5rem .7rem; border:1px solid var(--line); border-radius:8px; background:#fff; color:#42526b; font-size:.82rem; font-weight:700; text-decoration:none; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 1rem; }
.form-grid .full { grid-column:1/-1; }
label { display:block; color:#334158; font-size:.84rem; font-weight:690; }
.source-list { display:grid; gap:.65rem; }
.source-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:1rem; align-items:center; padding:.8rem 0; border-bottom:1px solid #edf0f4; }
.source-row:last-child { border-bottom:0; }
.source-row h3 { margin:0 0 .24rem; font-size:.95rem; }
.evidence-answer { white-space:pre-line; padding:1rem; border-left:4px solid var(--teal); border-radius:0 8px 8px 0; background:#f2fbfb; line-height:1.62; }
.source-quote { margin:.55rem 0 0; padding:.7rem; border-radius:8px; background:#f7f9fb; color:#2f3b4f; line-height:1.5; font-family:ui-serif,Georgia,serif; }
.diff-grid { display:grid; grid-template-columns:1fr 1fr; gap:.7rem; }
.diff-before,.diff-after { min-height:90px; padding:.75rem; border-radius:8px; white-space:pre-wrap; font-size:.85rem; line-height:1.48; }
.diff-before { background:#fff1f1; border:1px solid #f0cccc; }
.diff-after { background:#eefaf4; border:1px solid #c8e8d7; }
.action-row { display:flex; flex-wrap:wrap; gap:.45rem; align-items:center; margin-top:.65rem; }
.action-row form { margin:0; }
.action-row button { padding:.48rem .65rem; font-size:.77rem; }
.empty-state { padding:2rem 1rem; color:var(--muted); text-align:center; }
.module-grid { display:grid; grid-template-columns:repeat(5,minmax(150px,1fr)); gap:.7rem; }
.module-link { min-height:125px; padding:.9rem; border:1px solid var(--line); border-radius:10px; background:#fff; color:inherit; text-decoration:none; }
.module-link strong { display:block; margin:.5rem 0 .3rem; }
.module-link small { color:var(--muted); line-height:1.4; }
.module-icon { width:34px; height:34px; display:grid; place-items:center; border-radius:8px; background:#e7f4f4; color:var(--teal-dark); font-weight:900; }
.notice.error { background:#ffe8e9; color:#9f2228; }
.notice.success { background:#eaf6ee; color:#245d36; }
@media (max-width:1100px) { .module-grid { grid-template-columns:repeat(3,minmax(150px,1fr)); } .metric-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:820px) { .app-shell { grid-template-columns:1fr; } .app-sidebar { position:static; height:auto; } .primary-nav { grid-template-columns:repeat(3,1fr); } .sidebar-status { display:none; } .app-topbar { padding:0 1rem; } .top-search { width:min(520px,72vw); } .app-main { padding:1rem; margin:0; } .content-grid,.content-grid.three { grid-template-columns:1fr; } .module-grid { grid-template-columns:repeat(2,minmax(130px,1fr)); } }
@media (max-width:560px) { .primary-nav { grid-template-columns:repeat(2,1fr); } .topbar-meta>span { display:none; } .top-search { width:calc(100vw - 86px); } .page-header { display:block; } .page-header .button,.page-header .button-secondary { margin-top:.8rem; } .metric-grid,.form-grid,.cards,.checkbox-grid,.settings-grid,.project-grid,.diff-grid { grid-template-columns:1fr; } .module-grid { grid-template-columns:1fr; } .public-main { margin:0; border-radius:0; padding:1rem; } }
