/* Hozumi Work 2 — shared desktop, compact and mobile interface. */
:root {
  --ink:#203832; --muted:#687d76; --subtle:#85958e; --line:#dde7e2;
  --paper:#f3f6f4; --white:#fff; --teal:#103f3a; --teal-dark:#0b302d;
  --green:#17765e; --green-hover:#105e4b; --mint:#a6e8cb; --green-bg:#eaf6ef;
  --amber:#925c0c; --amber-bg:#fff5dc; --red:#ac3938; --red-bg:#fceeed;
  --blue:#3d6395; --blue-bg:#eef3fc; --radius:17px;
  --shadow:0 5px 20px rgba(25,62,48,.025); --focus:0 0 0 3px #62bba966;
  color-scheme:light; font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP","Yu Gothic UI",Meiryo,sans-serif;
  font-size:14px; font-synthesis:none; text-rendering:optimizeLegibility;
}
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:var(--paper); line-height:1.7; }
button,input,select,textarea { font:inherit; }
button,a { -webkit-tap-highlight-color:transparent; touch-action:manipulation; }
button { cursor:pointer; color:inherit; }
button:disabled { opacity:.42; cursor:not-allowed; }
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible { outline:2px solid #2e9c7e; outline-offset:3px; }
input,textarea,select { width:100%; min-width:0; padding:11px 13px; border:1px solid #cbd9d1; background:white; color:var(--ink); border-radius:9px; transition:border-color .15s,box-shadow .15s; }
input:hover,textarea:hover,select:hover { border-color:#9cb7aa; }
input:focus,textarea:focus,select:focus { border-color:var(--green); box-shadow:var(--focus); outline:none; }
input:disabled,select:disabled,textarea:disabled { background:#f0f4f1; color:#6c7c74; opacity:1; }
input[readonly] { background:#f6f8f6; }
input[type=checkbox] { width:18px; height:18px; flex-shrink:0; accent-color:var(--green); margin:0; cursor:pointer; }
textarea { min-height:90px; resize:vertical; line-height:1.8; }
a { color:var(--green); text-underline-offset:3px; }
h1,h2,h3,h4,p { margin:0; }
h1 { font-size:29px; font-weight:720; letter-spacing:-.7px; line-height:1.5; }
h2 { font-size:18px; font-weight:700; line-height:1.6; letter-spacing:-.2px; }
h3 { font-size:15px; line-height:1.65; }
h4 { font-size:13px; }
p + p { margin-top:10px; }
img,svg { vertical-align:middle; }
svg.icon { display:inline-block; flex-shrink:0; width:20px; height:20px; }
.hidden { display:none!important; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:fixed; top:-60px; left:20px; padding:10px 16px; border-radius:8px; background:white; z-index:1000; }
.skip-link:focus { top:10px; }
.subdued,.subtle { color:var(--muted); }
.small { font-size:12px; }
.mono { font-family:"SFMono-Regular",Consolas,monospace; overflow-wrap:anywhere; }
.text-red { color:var(--red); }
.spaced { margin-top:20px; }
.accent-icon { color:var(--green); }
.full-width { width:100%; }
.row { display:flex; align-items:center; gap:12px; }
.spread { justify-content:space-between; }
.wrap { flex-wrap:wrap; }
.button-group { display:flex; align-items:center; gap:8px; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:8px; border:1px solid var(--line); border-radius:9px; padding:10px 16px; min-height:42px; font-weight:600; font-size:13px; line-height:1.5; white-space:nowrap; text-decoration:none; background:white; transition:background .14s,box-shadow .14s,transform .14s; }
.button:hover { background:#edf3ef; border-color:#c3d4ca; }
.button:active { transform:translateY(1px); }
.button.primary { background:var(--green); border-color:var(--green); color:white; }
.button.primary:hover { background:var(--green-hover); border-color:var(--green-hover); }
.button.secondary { background:white; }
.button.light { background:#fff; border-color:white; color:var(--teal); }
.button.light:hover { background:#e2f3ea; }
.button.glass { background:#ffffff12; border-color:#ffffff35; color:#edf8f1; }
.button.glass:hover { background:#ffffff23; border-color:#ffffff60; }
.button.text { border-color:transparent; background:transparent; color:var(--green); padding-left:3px; padding-right:3px; }
.button.text:hover { text-decoration:underline; text-underline-offset:3px; }
.button.small { padding:7px 11px; font-size:12px; min-height:34px; }
.button.small .icon { width:16px; height:16px; }
.button.danger-solid { color:white; background:var(--red); border-color:var(--red); }
.button.danger-solid:hover { background:#902f2e; }
.icon-button { display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; padding:6px; border:0; border-radius:8px; background:transparent; color:var(--muted); text-decoration:none; flex-shrink:0; }
.icon-button:hover { background:#e9f0eb; color:var(--teal); }
.text-button { border:0; padding:0; margin:0; background:transparent; text-align:left; color:inherit; line-height:inherit; }
.text-button:hover { color:var(--green); text-decoration:underline; text-underline-offset:4px; }
.badge { display:inline-flex; align-items:center; justify-content:center; gap:5px; font-size:11px; line-height:1.5; font-weight:650; padding:4px 8px; border-radius:5px; white-space:nowrap; vertical-align:middle; }
.badge .icon { width:13px; height:13px; }
.badge.neutral { color:#61766b; background:#eff3f0; }
.badge.green,.badge.teal { color:#176a4f; background:#e8f5eb; }
.badge.amber { color:var(--amber); background:var(--amber-bg); }
.badge.red { color:var(--red); background:var(--red-bg); }
.badge.blue { color:var(--blue); background:var(--blue-bg); }
.badge.light { color:#d9f8e8; background:#ffffff16; }
.status-dot { width:7px; height:7px; display:inline-block; background:#94d8b8; border-radius:50%; flex-shrink:0; }
.status-dot.green { background:#248964; }
.unread-dot { display:inline-block; width:5px; height:5px; border-radius:100%; background:var(--red); }
.avatar { display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; color:#247451; background:#e6f1e8; border:1px solid #d5e8da; border-radius:12px; font-size:15px; font-weight:700; flex-shrink:0; }
.avatar.large { width:48px; height:48px; font-size:21px; }
.eyebrow { font-size:10px; color:var(--green); font-weight:700; letter-spacing:1.8px; line-height:1.7; margin-bottom:5px; }
.app-shell { display:grid; grid-template-columns:234px minmax(0,1fr); min-height:100vh; }
.sidebar { position:sticky; top:0; height:100vh; padding:30px 18px 22px; background:var(--teal); color:#d6e7dc; display:flex; flex-direction:column; }
.brand { display:flex; align-items:center; gap:11px; color:white; font-size:18px; font-weight:680; letter-spacing:-.4px; text-decoration:none; line-height:1.45; white-space:nowrap; }
.brand img { flex-shrink:0; }
.brand small { display:block; font-size:8px; color:#96b8a7; letter-spacing:1.3px; margin-top:4px; font-weight:500; }
.brand .version-tag { font-size:10px; line-height:1; padding:3px 4px; border:1px solid #6b9280; border-radius:4px; align-self:flex-start; margin-top:5px; color:#adccb9; }
.workspace-label { font-size:9px; letter-spacing:1.5px; font-weight:650; color:#7ea795; margin:38px 12px 11px; }
.navigation { display:grid; gap:4px; }
.nav-item { display:flex; align-items:center; gap:12px; width:100%; background:transparent; color:#c0d7c9; border:0; border-radius:9px; padding:12px; text-align:left; font-size:12px; font-weight:500; transition:background .14s,color .14s; }
.nav-item .icon { width:19px; height:19px; opacity:.87; }
.nav-item:hover { background:#ffffff0b; color:white; }
.nav-item.active { background:#ffffff16; color:white; font-weight:650; }
.nav-item.active .icon { color:#a6e8cb; opacity:1; }
.nav-count { display:inline-flex; align-items:center; justify-content:center; min-width:20px; height:19px; margin-left:auto; padding:0 5px; border-radius:6px; background:#c8e5d929; color:#dcf9ea; font-size:10px; }
.sidebar-bottom { margin-top:auto; padding:35px 12px 0; }
.sidebar-bottom p { color:#86aa96; font-size:10px; line-height:1.9; margin:12px 0 18px; }
.small-status { font-size:10px; color:#c1dacb; }
.small-status .status-dot { margin-right:5px; }
.sidebar-bottom>a { color:#b6d2c1; font-size:10px; text-decoration:none; display:flex; align-items:center; gap:8px; }
.sidebar-bottom>a .icon { width:14px; height:14px; }
.main-shell { max-width:1590px; width:100%; min-width:0; padding:31px 38px 20px; margin:0 auto; }
.page-header { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:26px; }
.page-date { display:flex; align-items:center; gap:17px; font-size:11px; color:var(--muted); margin-bottom:5px; }
.page-date span { font-size:9px; font-weight:650; color:#8aa194; letter-spacing:1.5px; }
.page-header>div>p { color:var(--muted); font-size:12px; margin-top:6px; }
.header-actions { display:flex; align-items:center; gap:18px; }
.user-button { display:flex; align-items:center; gap:9px; text-align:left; padding:5px 10px 5px 5px; border:1px solid #e2ebe4; border-radius:13px; background:#ffffffb8; line-height:1.5; font-size:12px; }
.user-button small { display:block; color:var(--muted); font-size:9px; }
.user-button .avatar { width:34px; height:34px; border-radius:9px; font-size:13px; }
.page-content { outline:none; min-width:0; display:grid; gap:20px; }
.page-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:23px 0 0; font-size:9px; color:#8a9d91; }
.page-footer>span { display:flex; align-items:center; gap:5px; }
.page-footer .icon { width:12px; height:12px; }
.compact-top,.compact-nav { display:none; }
.demo-banner { display:flex; align-items:center; gap:13px; background:#e9f1ef; color:#355e50; border:1px dashed #bed2c5; border-radius:8px; padding:8px 12px; font-size:11px; font-weight:650; margin-bottom:14px; }
.demo-banner span { font-weight:400; opacity:.8; }
.panel { background:white; border:1px solid var(--line); border-radius:var(--radius); padding:24px; min-width:0; box-shadow:var(--shadow); }
.section-heading { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:16px; }
.section-heading h2 .icon { margin-right:7px; vertical-align:-4px; }
.section-heading p { color:var(--muted); font-size:12px; margin-top:4px; }
.section-heading>.icon { width:22px; height:22px; }
.section-note { color:var(--muted); font-size:12px; margin-bottom:17px; }
.panel>p { font-size:13px; }
.notice { display:flex; align-items:flex-start; gap:11px; padding:13px 16px; border-radius:10px; border:1px solid #d1e6da; background:#edf7f0; color:#356e54; font-size:12px; line-height:1.8; }
.notice>.icon { width:18px; height:18px; margin-top:2px; }
.notice>div { min-width:0; flex:1; }
.notice strong { display:block; font-weight:700; }
.notice span { display:block; }
.notice.warning { color:var(--amber); background:var(--amber-bg); border-color:#f1dfb3; }
.notice.danger { color:var(--red); background:var(--red-bg); border-color:#ebceca; }
.notice.success { color:#1c7651; background:#eaf7ed; border-color:#cce8d7; }
#pending-notice .notice { margin-bottom:18px; align-items:center; }
#pending-notice .notice>div { display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
.empty-state { display:flex; align-items:center; justify-content:center; flex-direction:column; text-align:center; padding:31px 14px; color:var(--muted); }
.empty-state>.icon { width:29px; height:29px; margin-bottom:12px; color:#afc6b8; stroke-width:1.3; }
.empty-state h3 { font-size:13px; font-weight:550; }
.empty-state p { max-width:350px; font-size:11px; margin-top:5px; color:#93a297; }
.attendance-strip { display:flex; align-items:center; justify-content:space-between; gap:12px; border:1px solid #dde8e0; border-radius:12px; background:#ffffffa8; padding:12px 17px; }
.attendance-strip>div { display:flex; align-items:center; gap:12px; }
.attendance-time { font-size:11px; color:var(--muted); }
.home-layout { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(285px,1fr); gap:22px; align-items:start; }
.home-main,.home-aside { display:grid; gap:20px; min-width:0; }
.focus-card { position:relative; overflow:hidden; background:var(--teal); border:1px solid var(--teal); border-radius:19px; padding:26px 29px 27px; color:white; box-shadow:0 12px 25px #143e3410; }
.focus-card:before { content:""; position:absolute; right:-95px; top:-150px; border:1px solid #ffffff06; border-radius:50%; width:400px; height:400px; pointer-events:none; }
.focus-card:after { content:""; position:absolute; right:-60px; top:-110px; border:1px solid #ffffff06; border-radius:50%; width:300px; height:300px; pointer-events:none; }
.focus-top { display:flex; justify-content:space-between; align-items:center; gap:10px; position:relative; z-index:1; }
.focus-card .eyebrow { color:#aad8bc; font-size:9px; margin:0; }
.focus-card h2 { font-size:24px; line-height:1.55; font-weight:650; letter-spacing:-.6px; margin-top:22px; overflow-wrap:anywhere; }
.focus-source { color:#98bca8; font-size:11px; margin-top:7px; }
.countdown-row { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin:23px 0 6px; }
.countdown-row>div:first-child { display:flex; gap:11px; align-items:baseline; flex-wrap:wrap; }
#countdown { font-size:57px; line-height:1.2; font-weight:460; letter-spacing:-2.7px; font-variant-numeric:tabular-nums; }
#countdown-caption { font-size:11px; color:#a8cab5; }
.focus-times { display:grid; color:#b4d3c0; font-size:11px; text-align:right; line-height:1.9; padding-bottom:5px; white-space:nowrap; }
.focus-caption { color:#8eb39d; font-size:10px; display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.focus-caption span { margin-left:auto; }
.focus-progress { display:grid; grid-template-columns:130px minmax(50px,1fr) auto; align-items:center; gap:12px; margin-top:23px; padding-top:20px; border-top:1px solid #ffffff16; color:#acd3bb; font-size:10px; }
.focus-progress>div { display:flex; align-items:center; gap:10px; }
.focus-progress strong { font-size:14px; color:#dcf5e5; }
progress { appearance:none; border:0; width:100%; height:5px; border-radius:10px; overflow:hidden; background:#e9efe9; }
progress::-webkit-progress-bar { background:#e9efe9; border-radius:10px; }
progress::-webkit-progress-value { background:#33896a; border-radius:10px; }
progress::-moz-progress-bar { background:#33896a; border-radius:10px; }
.focus-progress progress { background:#ffffff19; }
.focus-progress progress::-webkit-progress-bar { background:#ffffff19; }
.focus-progress progress::-webkit-progress-value { background:#91dab4; }
.focus-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:22px; position:relative; z-index:1; }
.focus-actions .button { font-size:12px; padding:10px 12px; }
.focus-actions .button .icon { width:16px; height:16px; }
.warning-focus { background:#743b36; border-color:#743b36; }
.warning-focus .eyebrow,.warning-focus #countdown-caption,.warning-focus .focus-times { color:#e7bab0; }
.warning-focus .focus-source,.warning-focus .focus-caption,.warning-focus .focus-progress { color:#d0aaa0; }
.focus-conflict { position:relative; color:#ffd7c8; font-size:11px; line-height:1.9; margin-top:16px; }
.focus-conflict .icon { width:15px; height:15px; margin-right:6px; }
.idle-card { padding-top:25px; padding-bottom:30px; min-height:325px; }
.idle-card h2 { margin-top:22px; }
.idle-card>p { color:#aacbb7; font-size:12px; margin-top:9px; }
.idle-illustration { display:flex; align-items:center; justify-content:center; width:57px; height:57px; color:#b6e6ca; border:1px solid #d4f0dc25; border-radius:17px; background:#ffffff08; margin:28px 0 0; }
.idle-illustration .icon { width:29px; height:29px; stroke-width:1.4; }
.idle-card .focus-actions { margin-top:25px; }
.next-panel { background:linear-gradient(115deg,#fff,#f7fbf8); }
.next-panel .section-heading { align-items:flex-start; margin-bottom:10px; }
.next-panel h2 { font-size:17px; margin-top:7px; }
.next-panel .eyebrow { color:#8d9f93; font-size:9px; }
.recommendation-reason { display:flex; align-items:flex-start; gap:7px; color:var(--muted); font-size:11px!important; line-height:1.9; margin-bottom:19px; }
.recommendation-reason .icon { width:14px; height:14px; margin-top:3px; }
.plan-summary-number { display:flex; align-items:baseline; gap:7px; margin:7px 0 16px; }
.plan-summary-number>strong { font-size:30px; font-weight:550; line-height:1.3; }
.plan-summary-number>span { font-size:11px; color:var(--muted); }
.plan-summary-number>b { margin-left:auto; font-size:14px; font-weight:600; color:#416c50; }
.mini-task-list { display:grid; gap:11px; margin-bottom:15px; }
.mini-task-list>div { display:flex; align-items:flex-start; gap:9px; font-size:12px; }
.mini-task-list>div>span:nth-child(2) { flex:1; min-width:0; }
.mini-task-list .icon { color:#4c9a72; width:15px; height:15px; margin-top:4px; }
.order-number { display:inline-flex; align-items:center; justify-content:center; width:19px; height:19px; background:#f0f4ef; border-radius:4px; color:#7a9180; font-size:10px; flex-shrink:0; margin-top:2px; }
.fixed-summary .event-card { grid-template-columns:58px minmax(0,1fr); padding:15px 0; }
.fixed-summary .event-actions { grid-column:2; flex-direction:row; justify-content:flex-start; }
.fixed-summary .event-time strong { font-size:16px; }
.fixed-summary .event-body h3 { font-size:12px; }
.fixed-summary .event-body p { font-size:10px; }
.fixed-summary .empty-state { padding:20px 0; }
.metrics-row { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.metric-card { min-width:0; padding:18px 22px; background:#ffffffa8; border:1px solid var(--line); border-radius:13px; display:grid; align-content:start; }
.metric-card>span { color:var(--muted); font-size:11px; }
.metric-card>strong { font-size:25px; font-weight:620; letter-spacing:-.7px; margin:8px 0 4px; line-height:1.5; }
.metric-card>strong small { font-size:11px; color:var(--muted); margin-left:5px; font-weight:400; }
.metric-card>small { color:#91a094; font-size:10px; }
.table-scroll { max-width:100%; overflow:auto; }
.data-table { width:100%; border-collapse:collapse; font-size:12px; min-width:560px; }
.data-table th { text-align:left; padding:10px 12px; background:#f4f7f3; color:#819082; font-size:10px; font-weight:550; white-space:nowrap; border-bottom:1px solid #e9eee8; }
.data-table td { padding:15px 12px; border-bottom:1px solid #edf1eb; vertical-align:top; max-width:340px; overflow-wrap:anywhere; }
.data-table td:first-child,.data-table th:first-child { padding-left:10px; }
.data-table tr:last-child td { border-bottom:0; }
.data-table tr:hover td { background:#fafcf9; }
.data-table td strong { font-weight:550; }
.data-table .nowrap { white-space:nowrap; }
.table-subtext { display:block; font-size:10px; color:var(--muted); margin-top:4px; white-space:normal; line-height:1.8; }
.page-toolbar { display:flex; align-items:center; justify-content:space-between; gap:14px; min-width:0; }
.toolbar-context { display:flex; align-items:center; gap:10px; color:var(--muted); font-size:12px; }
.filter-toolbar { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.filter-toolbar>select { width:130px; font-size:12px; }
.search-field { display:flex; align-items:center; gap:9px; border:1px solid #d4dfd6; background:white; border-radius:9px; padding-left:12px; flex:1; min-width:180px; max-width:480px; }
.search-field .icon { width:16px; height:16px; color:#8a9d8f; }
.search-field input { border:0; font-size:12px; padding:10px 10px 10px 0; background:transparent; box-shadow:none; }
.search-field:focus-within { border-color:var(--green); box-shadow:var(--focus); }
.inline-field { display:flex; align-items:center; gap:7px; font-size:11px; color:var(--muted); white-space:nowrap; }
.inline-field select { width:auto; min-width:110px; max-width:220px; font-size:12px; }
.list-caption { display:flex; justify-content:space-between; gap:12px; font-size:10px; color:#96a297; margin:19px 0 4px; padding-bottom:10px; border-bottom:1px solid #e7eee5; }
.task-item { display:flex; align-items:flex-start; gap:14px; padding:19px 0; border-bottom:1px solid #edf1e9; }
.task-item:last-child { border-bottom:0; }
.task-marker { display:flex; align-items:center; justify-content:center; width:32px; height:32px; flex-shrink:0; color:#849c88; border:1px solid #dfe9dc; border-radius:9px; background:#f7faf5; margin-top:3px; }
.task-marker .icon { width:16px; height:16px; }
.task-marker.done { color:#4c9564; border-color:#c6e2ce; background:#eff9f0; }
.task-marker.urgent { color:#b76659; background:#fcf2eb; border-color:#eed9ce; }
.task-main { min-width:0; flex:1; }
.task-title-line { display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
.task-title { font-size:14px; line-height:1.7; font-weight:600; overflow-wrap:anywhere; }
.task-meta { display:flex; align-items:center; gap:8px; flex-wrap:wrap; font-size:10px; color:var(--muted); line-height:1.8; margin-top:6px; }
.task-meta .badge { font-size:9px; padding:2px 6px; }
.project-name { max-width:350px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.task-progress-line { display:flex; align-items:center; gap:10px; flex-wrap:wrap; font-size:10px; margin-top:13px; color:#607b65; }
.task-progress-line progress { max-width:95px; width:24%; min-width:45px; height:4px; }
.task-progress-line .subtle { color:#8b9d8d; }
.task-buttons { display:flex; align-items:center; gap:7px; padding-top:3px; flex-shrink:0; }
.task-warning { display:flex; align-items:flex-start; gap:6px; font-size:11px; color:var(--amber); margin-top:9px; }
.task-warning .icon { width:14px; height:14px; margin-top:3px; }
.is-complete .task-title { color:#7d9180; }
.date-switch { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.date-switch>input { width:150px; font-size:12px; }
.plan-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.plan-layout { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(270px,1fr); gap:22px; align-items:start; }
.plan-candidates { display:grid; gap:20px; }
.count-badge { display:inline-flex; padding:3px 9px; border-radius:6px; background:#edf3eb; color:#648263; font-size:11px; white-space:nowrap; }
.plan-item { display:flex; align-items:center; gap:11px; border-top:1px solid #e9efe5; padding:14px 0; }
.plan-item-order { display:flex; flex-direction:column; align-items:center; gap:0; flex-shrink:0; }
.plan-item-order .icon-button { width:23px; height:23px; padding:3px; }
.plan-item-order .icon { width:15px; height:15px; }
.plan-item-order>span { color:#93a38e; font-size:11px; padding:0 5px; }
.plan-item-main { flex:1; min-width:0; }
.plan-item-main .task-title { font-size:12px; }
.planned-input { display:flex; align-items:center; gap:5px; flex-shrink:0; color:var(--muted); font-size:10px; }
.planned-input input { width:67px; padding:8px 6px; font-size:12px; text-align:right; }
.remove-plan { width:24px; height:28px; padding:4px; }
.remove-plan .icon { width:15px; height:15px; }
.plan-total { display:flex; align-items:center; justify-content:space-between; background:#f1f6ee; border:1px solid #e0ebda; border-radius:9px; padding:13px 15px; margin-top:13px; color:#5a7754; font-size:12px; }
.plan-total strong { font-size:20px; font-weight:650; color:#255c3b; }
details>summary { cursor:pointer; color:#597b56; font-size:12px; font-weight:600; }
details[open]>summary { margin-bottom:13px; }
.availability-details { border-top:1px solid #e5eee1; padding-top:20px; margin-top:25px; }
.availability-details summary { display:flex; align-items:center; gap:7px; }
.availability-details summary>.icon { width:16px; height:16px; }
.availability-details summary>span { font-size:9px; color:#899c80; font-weight:400; border:1px solid #d9e5d0; padding:0 5px; border-radius:4px; }
.availability-details>p { font-size:11px; color:#849c7b; margin-bottom:14px; }
.plan-actions { display:flex; align-items:center; justify-content:flex-end; gap:9px; margin-top:24px; padding-top:20px; border-top:1px solid #e5ede0; flex-wrap:wrap; }
.plan-actions .button { font-size:12px; }
.capacity-value { display:grid; gap:5px; padding:4px 0 13px; }
.capacity-value>strong { font-size:20px; font-weight:650; color:#526f48; }
.capacity-value>span { font-size:11px; color:#7d9573; }
.capacity-panel .notice { margin:8px 0 12px; font-size:10px; padding:10px; }
.candidate-list { max-height:560px; overflow:auto; margin-bottom:17px; }
.candidate { display:flex; align-items:flex-start; gap:10px; padding:15px 2px; border-top:1px solid #eaf0e5; font-size:12px; cursor:pointer; }
.candidate>input { margin-top:4px; }
.candidate>span { display:grid; gap:5px; min-width:0; }
.candidate strong { font-size:12px; font-weight:600; }
.candidate .candidate-reason { color:#91a186; font-size:10px; line-height:1.8; }
.candidate.ineligible { opacity:.58; cursor:default; }
.candidate.ineligible .candidate-reason { color:#a5875d; }
.other-candidates { border-top:1px solid #e8efe3; padding:15px 0; }
.other-candidates>summary { font-size:11px; }
.plan-event { display:flex; align-items:flex-start; gap:12px; border-top:1px solid #e9efe6; padding:12px 0; }
.plan-event>span { color:var(--blue); font-size:10px; white-space:nowrap; min-width:70px; margin-top:3px; }
.plan-event>strong { font-size:12px; font-weight:550; }
.submission-panel { background:#f4f8f0; border:1px solid #e0e9d5; border-radius:10px; padding:17px; margin-top:20px; }
.submission-panel h3 { font-size:12px; color:#5b7444; display:flex; align-items:center; gap:6px; }
.submission-panel h3 .icon { width:15px; height:15px; }
.submission-panel>p { font-size:11px; color:#8da177; margin-top:7px; }
.submission-panel>.button { margin-top:13px; }
.review-note { margin-top:12px; padding-top:11px; border-top:1px solid #dbe5d2; font-size:11px; }
.review-note span { margin-left:10px; color:#8a9e76; }
.review-note p { margin-top:4px; }
.revision-history { margin-top:22px; }
.revision-history>div { display:grid; gap:4px; padding:12px 0; border-bottom:1px solid var(--line); font-size:11px; }
.revision-history>div>span { color:var(--muted); font-size:10px; }
.event-card { display:grid; grid-template-columns:80px minmax(0,1fr) auto; align-items:start; gap:15px; padding:21px 0; border-bottom:1px solid #e7eee5; }
.event-card:last-of-type { border-bottom:0; }
.event-time { display:grid; color:var(--blue); border-left:3px solid #a4bcdb; padding-left:10px; line-height:1.45; }
.event-time strong { font-weight:600; font-size:20px; letter-spacing:-.5px; }
.event-time>span { color:#9aaabd; font-size:11px; margin-top:4px; }
.event-body h3 { font-size:14px; font-weight:600; }
.event-body p { color:#9aa89a; font-size:11px; margin-top:7px; }
.event-actions { display:flex; flex-direction:column; gap:6px; align-items:flex-end; }
.event-card.cancelled { opacity:.5; }
.event-card.cancelled h3 { text-decoration:line-through; }
.unmet-item { padding:17px 0; border-top:1px solid #e6ede2; }
.unmet-item>div { display:flex; align-items:center; gap:9px; }
.unmet-item strong { font-size:12px; }
.unmet-item .icon { width:16px; height:16px; color:#9eae90; }
.unmet-item>p { margin:8px 0 0 25px; color:#718366; font-size:12px; }
.unmet-reason { display:flex; align-items:flex-start; gap:5px; font-size:10px; line-height:1.8; color:#9a803d; padding:7px 9px; background:#faf7e9; border-radius:5px; margin-top:9px; }
.unmet-reason .icon { width:12px; height:12px; margin-top:3px; }
.attendance-history>div { display:flex; align-items:center; gap:13px; border-top:1px solid var(--line); padding:11px 0; font-size:11px; }
.attendance-history>div>span { color:var(--muted); }
.team-overview { display:flex; align-items:center; gap:36px; background:#ffffffa3; border:1px solid var(--line); border-radius:13px; padding:15px 22px; }
.team-overview>div { display:flex; align-items:center; gap:7px; font-size:12px; }
.team-overview strong { font-size:24px; font-weight:600; line-height:1.5; }
.team-overview span { color:var(--muted); font-size:11px; }
.team-overview .icon { width:15px; height:15px; }
.team-note { margin:0 0 -7px; font-size:11px; }
.team-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:21px; }
.team-person { background:#fff; border:1px solid var(--line); border-top:3px solid #d6dfd1; border-radius:15px; padding:23px; min-width:0; }
.team-person.is-working { border-top-color:#5cac78; }
.team-person.on-break { border-top-color:#daba68; background:#fffdfa; }
.team-person.has-warning { border-color:#e6c6bf; border-top-color:#bb5550; background:#fffaf8; }
.team-person.is-away { background:#fcfdfb; }
.team-person>header { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.person-identity { display:flex; align-items:center; gap:12px; }
.person-identity h2 { font-size:17px; line-height:1.5; }
.person-identity small { color:var(--muted); font-size:10px; }
.person-current { margin-top:24px; min-height:94px; }
.person-current .eyebrow { font-size:9px; letter-spacing:.5px; color:#9aa98e; }
.person-current h3 { font-size:15px; font-weight:600; line-height:1.7; }
.person-current p { color:#8d9c82; font-size:11px; margin-top:8px; }
.person-alert { display:flex; align-items:flex-start; gap:8px; padding:10px 12px; border:1px solid #eed6d0; background:#fff0e9; color:#a35948; font-size:11px; border-radius:8px; margin:13px 0; }
.person-alert>.icon { width:15px; height:15px; margin-top:2px; }
.person-alert small { display:block; font-size:9px; color:#b88778; }
.person-plan { display:flex; align-items:center; justify-content:space-between; padding:13px 0; border-top:1px solid #e8eee0; }
.person-plan>span:first-child { color:#99a58b; font-size:11px; }
.person-next { display:flex; flex-direction:column; gap:4px; padding:0 0 10px; }
.person-next>span { color:var(--muted); font-size:10px; }
.person-next>strong { font-size:12px; font-weight:500; }
.team-person>footer { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:15px; }
.viewing-person { display:flex; align-items:center; justify-content:space-between; gap:15px; }
.viewing-person>div { display:flex; align-items:center; gap:13px; }
.viewing-person>div>span:last-child { display:grid; gap:2px; }
.viewing-person strong { font-size:21px; }
.viewing-person small { color:var(--muted); font-size:11px; }
.person-plan-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.person-plan-card { background:#f8faf4; padding:17px; border:1px solid #e3eadb; border-radius:11px; }
.person-plan-card>.section-heading h3 { font-size:12px; }
.person-plan-card>p { color:#8c9b7e; font-size:12px; margin-bottom:10px; }
.person-plan-card>.button { margin-top:15px; }
.simple-plan-item { display:flex; align-items:center; gap:9px; flex-wrap:wrap; font-size:11px; border-top:1px solid #e3eadc; padding:9px 0; }
.simple-plan-item>strong { flex:1; font-weight:500; }
.simple-plan-item>span { color:#8a9c79; }
.simple-plan-item>p { width:100%; color:#a18a52; font-size:10px; }
.detail-actions { display:flex; gap:9px; flex-wrap:wrap; }
.notification-item { display:flex; align-items:flex-start; gap:15px; padding:19px 0; border-top:1px solid #e9eee2; }
.notification-icon { display:flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:10px; flex-shrink:0; margin-top:2px; }
.notification-icon .icon { width:18px; height:18px; }
.notification-icon.green { color:#4c9c62; background:#edf7e8; }
.notification-icon.red { color:#b8765c; background:#fbefe5; }
.notification-icon.blue { color:#638cb9; background:#edf4fa; }
.notification-main { flex:1; min-width:0; }
.notification-title { display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
.notification-title h3 { font-size:13px; }
.notification-main>p { color:#7b8f70; font-size:12px; margin-top:8px; }
.notification-main>span { color:#a0ad94; font-size:10px; display:block; margin-top:7px; }
.notification-item.resolved { opacity:.7; }
.settings-tabs { display:flex; gap:4px; overflow-x:auto; padding:0 0 12px; border-bottom:1px solid #dce7d5; }
.settings-tabs>button { border:0; border-radius:7px; background:transparent; color:#839474; font-size:11px; white-space:nowrap; padding:9px 11px; }
.settings-tabs>button.active { background:#e5efdf; color:#3c6b42; font-weight:650; }
.settings-tabs>button:hover { background:#eaf2e4; }
.settings-content { display:grid; gap:20px; min-width:0; }
.settings-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; align-items:start; }
.settings-grid .panel { display:grid; gap:13px; align-content:start; }
.settings-grid .section-heading { margin:0; }
.instruction-block { background:#f5f8f1; border:1px solid #e5eedc; border-radius:9px; padding:14px 16px; font-size:11px; }
.instruction-block strong { color:#627e4a; font-size:11px; }
.instruction-block p { color:#8a9e72; margin-top:5px; line-height:1.9; }
.detail-list { margin:0 0 16px; display:grid; }
.detail-list>div { display:grid; grid-template-columns:135px minmax(0,1fr); gap:10px; border-bottom:1px solid #e9efdf; padding:12px 0; font-size:12px; }
.detail-list dt { color:#96a484; font-size:11px; }
.detail-list dd { margin:0; overflow-wrap:anywhere; }
.grid-details { grid-template-columns:1fr 1fr; column-gap:25px; }
.grid-details>div { grid-template-columns:1fr; gap:4px; }
.calendar-admin-list>article { display:flex; align-items:center; gap:17px; padding:22px 0; border-top:1px solid #e9efdf; }
.calendar-admin-icon { display:flex; align-items:center; justify-content:center; width:43px; height:43px; background:#edf3fa; border:1px solid #dee7f0; color:#7092bd; border-radius:12px; flex-shrink:0; }
.calendar-admin-list>article>div:nth-child(2) { flex:1; min-width:0; }
.calendar-admin-list h3 { font-size:14px; }
.calendar-admin-list p { color:#8d9e7a; font-size:11px; margin-top:4px; }
.calendar-admin-list>article>div:last-child { display:flex; align-items:center; gap:10px; }
.rule-item,.notification-rule { display:flex; justify-content:space-between; align-items:center; gap:15px; padding:22px 0; border-top:1px solid #e6edde; }
.rule-item h3,.notification-rule h3 { font-size:13px; }
.rule-item h3 .badge,.notification-rule h3 .badge { margin-left:7px; }
.rule-item p,.notification-rule p { color:#79925e; font-size:12px; margin-top:7px; }
.recurrence-candidate { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:20px 0; border-top:1px solid #e8edde; }
.recurrence-candidate h3 { margin-top:8px; font-size:14px; }
.recurrence-candidate p { font-size:11px; color:#91a277; margin-top:7px; }
.recurrence-candidate>.button-group { max-width:140px; }
.sync-job { display:grid; grid-template-columns:1fr auto; gap:15px; border-top:1px solid #e7edde; padding:20px 0; }
.sync-job h3 { font-size:14px; }
.sync-job>.badge { justify-self:end; align-self:start; }
.sync-job>.sync-times { display:flex; gap:25px; flex-wrap:wrap; font-size:11px; color:#8a9e72; }
.sync-job>details,.sync-job>.error-inline { grid-column:1/-1; }
.error-inline { color:var(--red); font-size:12px; display:flex; align-items:flex-start; gap:8px; }
.error-inline .icon { width:16px; height:16px; margin-top:2px; }
pre { white-space:pre-wrap; overflow-wrap:anywhere; font-family:Consolas,monospace; font-size:11px; background:#f3f6ec; border:1px solid #e4e9d7; border-radius:8px; padding:13px; max-height:300px; overflow:auto; color:#677d4d; }
.audit-list>article { display:grid; grid-template-columns:29px 1fr; gap:13px; padding:21px 0; border-top:1px solid #e8eeda; }
.audit-marker { display:flex; align-items:center; justify-content:center; color:#99ad7b; width:27px; height:27px; background:#f2f7e9; border-radius:50%; }
.audit-marker .icon { width:15px; height:15px; }
.audit-title { display:flex; align-items:center; gap:15px; justify-content:space-between; }
.audit-title strong { font-size:12px; overflow-wrap:anywhere; }
.audit-title span,.audit-list p { color:#9aac81; font-size:10px; }
.audit-list p { margin-top:7px; }
.audit-list .audit-reason { color:#647d46; font-size:12px; }
.audit-list details { margin-top:9px; }
.audit-list summary { font-size:10px; font-weight:500; }
.audit-diff { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.audit-diff strong { font-size:10px; }
dialog { width:min(590px,calc(100vw - 28px)); max-height:calc(100dvh - 36px); border:1px solid #d6e1cf; border-radius:19px; padding:0; color:var(--ink); box-shadow:0 22px 110px #172c2840; overflow:auto; }
dialog.wide { width:min(810px,calc(100vw - 28px)); }
dialog::backdrop { background:#122d2b70; backdrop-filter:blur(4px); }
.dialog-header { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:24px 27px 18px; border-bottom:1px solid #edf1e6; }
.dialog-header h2 { font-size:19px; }
.dialog-header .eyebrow { margin-bottom:3px; }
.dialog-body { padding:23px 27px; }
.dialog-body>.notice { margin-bottom:20px; }
.dialog-footer { display:flex; justify-content:flex-end; align-items:center; gap:9px; padding:17px 27px; background:#f8faf3; border-top:1px solid #e5eddb; position:sticky; bottom:0; }
.dialog-task-title { font-size:17px; margin-bottom:17px; line-height:1.8; }
.field { display:flex; flex-direction:column; gap:7px; margin-bottom:17px; min-width:0; }
.field>span { font-size:12px; color:#506b42; font-weight:600; }
.field>small { color:#94a77d; font-size:10px; line-height:1.8; font-weight:400; }
.field-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 18px; }
.field-grid .full { grid-column:1/-1; }
.input-with-unit { display:flex; align-items:center; gap:9px; font-size:12px; color:#839b67; }
.input-with-unit input { flex:1; }
.checkbox-label { display:flex; align-items:flex-start; gap:10px; font-size:12px; line-height:1.8; margin:12px 0; cursor:pointer; }
.checkbox-label input { margin-top:4px; }
.checkbox-label>span { font-size:10px; color:#8ba171; margin-left:3px; }
.checkbox-label.emphasized { background:#f1f7e9; border:1px solid #ddebcf; border-radius:8px; padding:12px; font-weight:600; }
.checkbox-fieldset { margin:7px 0 20px; border:1px solid #e2ecd8; border-radius:10px; padding:10px 16px; }
.checkbox-fieldset legend { font-size:12px; color:#6f8a51; padding:0 5px; font-weight:600; }
.progress-report { margin:0 0 22px; padding:17px; background:#f6f9f0; border:1px solid #e3ecd8; border-radius:11px; }
.progress-report .section-heading { gap:7px; margin-bottom:13px; flex-wrap:wrap; }
.progress-report h3 { font-size:13px; color:#5c7742; }
.progress-report .field { margin-bottom:9px; }
.progress-report .field>span { font-size:11px; }
.progress-report>p { font-size:10px; color:#a2b48a; margin-top:6px; }
.start-target { padding-bottom:18px; margin-bottom:17px; border-bottom:1px solid #e5ecda; }
.start-target h3 { margin-top:9px; font-size:18px; line-height:1.8; }
.completion-preview { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:15px 0 20px; }
.completion-preview>div { display:grid; background:#f5f9ed; border:1px solid #e4edda; border-radius:9px; padding:13px; gap:9px; }
.completion-preview span { font-size:10px; color:#89a16b; }
.completion-preview strong { font-size:17px; font-weight:600; color:#4f7239; }
.detail-title { margin-bottom:19px; }
.detail-title h3 { font-size:21px; line-height:1.7; margin:10px 0; }
.external-link { display:inline-flex; align-items:center; gap:5px; font-size:11px; text-decoration:none; }
.external-link .icon { width:13px; height:13px; }
.description-block { background:#f7faf2; border:1px solid #e8efdf; border-radius:10px; padding:17px; margin-top:18px; }
.description-block p { font-size:12px; color:#738b57; white-space:pre-wrap; overflow-wrap:anywhere; margin-top:9px; line-height:1.9; }
.dependency-block { margin-top:18px; }
.dependency-block p { margin-top:8px; font-size:12px; }
.dependency-block .badge { margin-right:8px; }
.unmet-form { border-top:1px solid #e1ebd4; padding-top:20px; margin-top:22px; }
.unmet-form>p { margin-bottom:17px; }
.unmet-form textarea { min-height:70px; }
.form-error { background:#fff0e9; border:1px solid #efcfbf; color:#a74d36; font-size:12px; line-height:1.8; padding:11px 13px; border-radius:8px; margin:0 27px 18px; overflow-wrap:anywhere; }
.secret-display { font-family:Consolas,monospace; font-size:16px; letter-spacing:.4px; }
.connection { position:sticky; top:0; z-index:900; background:#91453c; color:#fff8f5; font-size:11px; line-height:1.8; padding:10px 16px; text-align:center; }
.toasts { position:fixed; bottom:22px; right:25px; z-index:1100; display:grid; gap:9px; max-width:470px; width:calc(100vw - 40px); pointer-events:none; }
.toast { display:flex; align-items:flex-start; gap:10px; background:#173e2d; color:#eef9e9; border-radius:12px; padding:15px 15px 15px 17px; box-shadow:0 7px 32px #163c3230; font-size:12px; pointer-events:auto; animation:toast-in .2s ease-out; }
.toast>.icon { width:18px; height:18px; color:#aad48b; margin-top:2px; }
.toast>span { flex:1; min-width:0; }
.toast>.icon-button { width:24px; height:24px; color:#a9c58e; margin:-2px -3px -2px 0; }
.toast>.icon-button .icon { width:15px; height:15px; }
.toast.error { background:#783c30; color:#fff2e8; }
.toast.error>.icon { color:#edb28e; }
@keyframes toast-in { from{transform:translateY(9px);opacity:0} to{transform:translateY(0);opacity:1} }
.boot,.loading-card { min-height:50vh; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:14px; color:#7b966a; }
.boot { min-height:100vh; }
.boot h1 { font-size:24px; color:var(--teal); }
.boot p,.loading-card p { font-size:12px; }
.loader { display:inline-block; width:22px; height:22px; border:2px solid #dae5d1; border-top-color:#527d4e; border-radius:50%; animation:spin .8s linear infinite; }
@keyframes spin { to{transform:rotate(360deg)} }
.error-panel { text-align:center; padding:50px 20px; }
.error-panel>.icon { color:var(--red); width:34px; height:34px; margin-bottom:17px; }
.error-panel p { margin:15px 0 24px; color:var(--muted); }
.login-page { display:grid; grid-template-columns:1.06fr 1fr; min-height:100vh; background:white; }
.login-story { display:flex; flex-direction:column; padding:50px 65px 30px; background:var(--teal); color:white; overflow:hidden; }
.login-story>.brand { font-size:23px; }
.login-story>.brand small { font-size:9px; }
.login-copy { margin:auto 0; padding:56px 0; }
.login-copy>.eyebrow { color:#9ac1a0; font-size:10px; letter-spacing:2.1px; }
.login-copy>h1 { font-size:52px; line-height:1.65; letter-spacing:-2px; font-weight:650; margin-top:18px; }
.login-copy>p:last-of-type { font-size:13px; line-height:2.1; color:#99bc9d; margin-top:20px; }
.login-preview { margin-top:43px; max-width:330px; border:1px solid #ffffff16; background:#ffffff08; border-radius:15px; padding:21px 24px; transform:rotate(-1.2deg); }
.login-preview>div:first-child { display:flex; align-items:center; gap:8px; font-size:11px; }
.login-preview>div:first-child>.status-dot { width:6px; height:6px; }
.login-preview>div:first-child>span:last-child { margin-left:auto; font-size:7px; color:#84b59c; letter-spacing:.7px; }
.preview-line { width:58%; height:5px; border-radius:3px; background:#ffffff0d; margin-top:8px; }
.preview-line.long { width:84%; margin-top:18px; }
.preview-progress { height:4px; background:#ffffff12; border-radius:3px; margin:22px 0 18px; }
.preview-progress>i { display:block; width:63%; height:100%; background:#6cbe8b; border-radius:3px; }
.login-preview>div:last-child { display:flex; align-items:center; justify-content:space-between; font-size:9px; color:#9cbf9d; }
.login-preview>div:last-child>.icon { width:13px; height:13px; color:#689674; }
.login-story>footer { display:flex; justify-content:space-between; font-size:9px; letter-spacing:1px; color:#76a089; }
.login-story>footer>span { font-size:8px; }
.login-form-area { display:flex; flex-direction:column; align-items:center; justify-content:center; padding:60px; position:relative; }
.login-form { max-width:370px; width:100%; }
.login-form>.eyebrow { font-size:10px; letter-spacing:1.5px; color:#9ba48b; }
.login-form h2 { font-size:24px; letter-spacing:-.5px; margin-top:10px; }
.login-form>.subdued { font-size:12px; margin:10px 0 32px; }
.login-form .field { margin-bottom:19px; }
.login-form .field>span { font-size:12px; }
.login-form .field input { padding:13px 14px; background:#fafcf9; }
.login-form .button[type=submit] { margin-top:6px; min-height:46px; justify-content:space-between; padding:13px 17px; }
.login-help { font-size:10px; color:#a0aa94; line-height:1.9; margin-top:22px; }
.login-form .form-error { margin:0 0 15px; }
.login-footnote { position:absolute; bottom:30px; display:flex; align-items:center; gap:6px; font-size:9px; color:#b1b9a5; }
.login-footnote>.icon { width:12px; height:12px; }
/* Compact windows retain their own complete navigation. */
.compact .app-shell { display:block; min-height:100vh; }
.compact .sidebar,.compact .page-header,.compact .page-footer { display:none; }
.compact .main-shell { padding:0 13px 18px; max-width:100%; }
.compact-top { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:58px; }
body:not(.compact) .compact-top { display:none; }
.compact-brand { display:flex; align-items:center; gap:8px; font-size:14px; color:var(--teal); font-weight:650; text-decoration:none; }
.compact-actions { display:flex; align-items:center; gap:3px; }
.compact .compact-nav { display:flex; align-items:stretch; gap:3px; border:1px solid #dce7d1; background:#ffffffae; border-radius:10px; padding:4px; margin-bottom:12px; position:sticky; top:0; z-index:20; backdrop-filter:blur(10px); }
.compact-nav>button { flex:1; display:flex; justify-content:center; align-items:center; gap:5px; font-size:10px; padding:8px 4px; border:0; border-radius:7px; color:#96a27e; background:transparent; white-space:nowrap; }
.compact-nav>button.active { background:#e7efdd; color:#557444; }
.compact-nav>button .icon { width:15px; height:15px; }
.compact .demo-banner { padding:5px 8px; font-size:9px; margin-bottom:9px; }
.compact .demo-banner span { font-size:8px; }
.compact .page-content { gap:12px; }
.compact .panel { padding:17px; border-radius:12px; }
.compact .home-layout,.compact .plan-layout { display:block; }
.compact .home-main { gap:12px; }
.compact .home-aside,.compact .home-metrics,.compact .home-history { display:none; }
.compact .attendance-strip { padding:8px 10px; border-radius:9px; gap:5px; }
.compact .attendance-strip>div { gap:7px; }
.compact .attendance-strip .badge { font-size:10px; padding:3px 6px; }
.compact .attendance-time { font-size:9px; }
.compact .attendance-strip .button.small { padding:5px 8px; min-height:29px; font-size:10px; }
.compact .focus-card { padding:21px; border-radius:14px; }
.compact .focus-card h2 { font-size:21px; margin-top:17px; }
.compact #countdown { font-size:48px; }
.compact .countdown-row { margin-top:21px; }
.compact .focus-progress { grid-template-columns:125px minmax(30px,1fr); gap:8px; margin-top:16px; padding-top:13px; }
.compact .focus-progress>span:last-child { grid-column:1/-1; }
.compact .focus-actions { margin-top:19px; }
.compact .focus-actions .button { min-height:36px; padding:9px 10px; font-size:11px; }
.compact .focus-caption { font-size:9px; }
.compact .focus-caption>span { display:none; }
.compact .idle-card { min-height:0; }
.compact .idle-illustration { display:none; }
.compact .idle-card h2 { margin-top:24px; }
.compact .idle-card>p { font-size:11px; }
.compact .next-panel h2 { font-size:15px; }
.compact .recommendation-reason { font-size:10px!important; margin-bottom:12px; }
.compact .next-panel .row { flex-wrap:wrap; gap:8px; }
.compact .next-panel .button { font-size:10px; }
.compact .plan-candidates { margin-top:12px; gap:12px; }
.compact .plan-toolbar { gap:9px; }
.compact .plan-toolbar .date-switch { gap:5px; }
.compact .plan-toolbar .date-switch>input { width:130px; font-size:10px; padding:7px; }
.compact .plan-toolbar .button.small { font-size:10px; padding:7px; }
.compact .team-grid { grid-template-columns:1fr; gap:10px; }
.compact .team-overview { gap:20px; padding:10px 14px; border-radius:10px; }
.compact .team-overview strong { font-size:20px; }
.compact .team-overview span { font-size:10px; }
.compact .team-note { font-size:9px; margin:0; }
.compact .team-person { padding:17px; border-radius:12px; }
.compact .person-identity .avatar { width:32px; height:32px; border-radius:9px; }
.compact .person-identity h2 { font-size:15px; }
.compact .person-identity small { font-size:9px; }
.compact .person-current { margin-top:14px; min-height:0; }
.compact .person-current h3 { font-size:13px; }
.compact .person-current p { font-size:10px; margin-top:5px; }
.compact .person-plan { padding:10px 0; margin-top:11px; }
.compact .person-next { display:flex; padding:6px 0; }
.compact .team-person>footer { margin-top:6px; }
.compact .team-person>footer .small { font-size:9px; }
.compact .team-person>footer .button { min-height:28px; padding:5px 8px; font-size:10px; }
.compact .home-warning { padding:10px; font-size:10px; }
.compact .task-title { font-size:12px; }
.compact .filter-toolbar { gap:8px; }
.compact .filter-toolbar>select { width:105px; font-size:11px; }
.compact .task-item { gap:9px; padding:15px 0; }
.compact .task-marker { display:none; }
.compact .task-progress-line { gap:8px; font-size:9px; }
.compact .task-progress-line .subtle { width:100%; }
.compact .task-buttons .button { font-size:10px; padding:6px 8px; min-height:30px; }
.compact .list-caption>span:last-child { max-width:220px; text-align:right; font-size:9px; }
.compact .settings-grid,.compact .person-plan-grid { grid-template-columns:1fr; }
.compact .settings-tabs { padding-bottom:8px; }
.compact .page-toolbar { flex-wrap:wrap; }
.compact .page-toolbar>.button { font-size:11px; }
.compact .metrics-row { gap:7px; }
.compact .metric-card { padding:12px 9px; }
.compact .metric-card>strong { font-size:18px; }
.compact .metric-card>span,.compact .metric-card>small { font-size:9px; }
.compact .viewing-person strong { font-size:16px; }
.compact .viewing-person small { font-size:9px; }
.compact .viewing-person .button { font-size:10px; }
.compact .notification-item { gap:9px; flex-wrap:wrap; }
.compact .notification-item>.button { margin-left:43px; }
.compact .notification-main>p { font-size:11px; }
@media (min-width:1600px) { .main-shell { padding-left:48px; padding-right:48px; } .team-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:1190px) {
  .app-shell { grid-template-columns:210px minmax(0,1fr); }
  .sidebar { padding-left:14px; padding-right:14px; }
  .brand { font-size:16px; gap:8px; }
  .brand img { width:32px; height:32px; }
  .brand .version-tag { display:none; }
  .main-shell { padding:27px; }
  .home-layout { grid-template-columns:minmax(0,1.4fr) minmax(250px,1fr); gap:17px; }
  .focus-card { padding:23px; }
  .focus-card h2 { font-size:22px; }
  .countdown-row { gap:10px; }
  #countdown { font-size:49px; }
  .focus-times { font-size:10px; }
  .focus-progress { grid-template-columns:1fr 1fr; }
  .focus-progress>span:last-child { grid-column:1/-1; }
  .panel { padding:20px; }
  .plan-layout { grid-template-columns:1fr; }
  .plan-candidates { grid-template-columns:1fr 1fr; }
  .candidate-panel { grid-row:span 2; }
  .settings-grid { grid-template-columns:1fr; }
  .login-story { padding:40px; }
  .login-form-area { padding:40px; }
  .login-copy>h1 { font-size:45px; }
}
@media (max-width:980px) {
  .home-layout { grid-template-columns:1fr; }
  .home-aside { grid-template-columns:1fr 1fr; }
  .focus-progress { grid-template-columns:130px minmax(0,1fr) auto; }
  .focus-progress>span:last-child { grid-column:auto; }
  .team-grid { grid-template-columns:1fr; }
  .team-overview { gap:23px; }
  .page-header .page-date>span { display:none; }
  .header-actions { gap:8px; }
  .page-header h1 { font-size:26px; }
  .grid-details { column-gap:18px; }
}
@media (max-width:740px) {
  :root { font-size:14px; }
  .app-shell { display:block; }
  .sidebar { position:relative; top:auto; height:auto; padding:17px 17px 0; }
  .sidebar>.brand { font-size:18px; gap:10px; }
  .sidebar>.brand small { display:none; }
  .sidebar>.brand img { width:29px; height:29px; }
  .workspace-label,.sidebar-bottom { display:none; }
  .navigation { display:flex; gap:3px; overflow-x:auto; margin-top:16px; padding-bottom:9px; scrollbar-width:none; }
  .navigation::-webkit-scrollbar { display:none; }
  .nav-item { flex-shrink:0; width:auto; padding:8px 11px; font-size:11px; gap:6px; border-radius:6px; }
  .nav-item .icon { width:15px; height:15px; }
  .nav-count { min-width:16px; height:16px; font-size:8px; margin-left:0; border-radius:4px; }
  .main-shell { padding:23px 16px 18px; }
  .page-header { margin-bottom:22px; align-items:flex-start; }
  .page-header h1 { font-size:24px; }
  .page-header>div>p { font-size:11px; max-width:245px; }
  .page-date { font-size:10px; }
  .header-actions { margin-top:4px; }
  .user-button { padding:3px; border-radius:10px; }
  .user-button>span:last-child { display:none; }
  .refresh-main { display:none; }
  .page-content { gap:16px; }
  .panel { padding:19px; border-radius:14px; }
  .page-footer { align-items:flex-start; font-size:8px; padding-top:21px; }
  .page-footer>span:first-child { max-width:240px; }
  .demo-banner { font-size:9px; gap:8px; align-items:flex-start; padding:8px 10px; }
  .demo-banner>span { flex:1; font-size:9px; }
  .attendance-strip { padding:10px 11px; gap:7px; }
  .attendance-strip>div { gap:7px; }
  .attendance-time { font-size:9px; }
  .attendance-strip .badge { font-size:10px; }
  .attendance-strip .button { padding:7px 8px; font-size:10px; min-height:30px; }
  .attendance-strip .button>.icon { width:13px; height:13px; }
  .home-layout { gap:16px; }
  .home-main,.home-aside { gap:16px; }
  .home-aside { grid-template-columns:1fr; }
  .focus-card { padding:23px; border-radius:16px; }
  .focus-card h2 { font-size:23px; margin-top:21px; }
  .focus-top .badge { font-size:9px; padding:4px 6px; }
  .focus-card .eyebrow { font-size:8px; letter-spacing:1.1px; }
  #countdown { font-size:51px; }
  .countdown-row { gap:10px; margin-top:25px; }
  .countdown-row>div:first-child { gap:6px; }
  #countdown-caption { font-size:10px; }
  .focus-times { font-size:10px; }
  .focus-progress { grid-template-columns:125px minmax(40px,1fr); gap:8px; }
  .focus-progress>span:last-child { grid-column:1/-1; }
  .focus-caption { font-size:9px; }
  .focus-caption>span { display:none; }
  .focus-actions { gap:7px; }
  .focus-actions .button { font-size:11px; min-height:38px; padding:10px; }
  .idle-card { min-height:310px; }
  .idle-card>p { font-size:11px; }
  .next-panel .row { flex-wrap:wrap; gap:12px; }
  .next-panel .section-heading h2 { font-size:16px; }
  .home-warning { flex-wrap:wrap; }
  .home-warning>.button { margin-left:28px; }
  .metrics-row { gap:8px; }
  .metric-card { padding:14px 10px; border-radius:10px; }
  .metric-card>span { font-size:9px; }
  .metric-card>strong { font-size:19px; margin:7px 0 5px; line-height:1.6; }
  .metric-card>small { font-size:8px; line-height:1.7; }
  .metric-card>strong>small { display:inline; font-size:9px; }
  .section-heading { gap:10px; }
  .section-heading h2 { font-size:16px; }
  .section-heading p { font-size:10px; }
  .section-heading>.button { font-size:10px; padding:6px 8px; min-height:30px; }
  .data-table { min-width:610px; }
  .data-table td { font-size:11px; }
  .page-toolbar { flex-wrap:wrap; gap:10px; }
  .toolbar-context { font-size:11px; }
  .page-toolbar>.button { font-size:11px; padding:9px 11px; min-height:36px; }
  .filter-toolbar { gap:8px; }
  .filter-toolbar>select { width:95px; font-size:11px; padding:9px; }
  .search-field { min-width:140px; }
  .inline-field select { font-size:11px; padding:8px 9px; min-width:100px; }
  .inline-field>span { font-size:10px; }
  .list-caption { margin-top:15px; font-size:9px; align-items:flex-start; }
  .list-caption>span:last-child { max-width:240px; text-align:right; }
  .task-item { gap:10px; padding:17px 0; }
  .task-marker { width:25px; height:25px; border-radius:7px; }
  .task-marker .icon { width:13px; height:13px; }
  .task-title { font-size:12px; }
  .task-meta { font-size:9px; gap:7px; }
  .task-buttons .button { padding:6px 8px; font-size:10px; min-height:29px; }
  .task-buttons .icon { display:none; }
  .task-progress-line { font-size:9px; gap:7px; }
  .task-progress-line .subtle { width:100%; }
  .task-warning { font-size:10px; }
  .task-warning .icon { width:12px; height:12px; }
  .plan-candidates { grid-template-columns:1fr; }
  .candidate-panel { grid-row:auto; }
  .plan-toolbar .button-group { margin-left:auto; }
  .plan-toolbar .date-switch>input { width:135px; font-size:11px; padding:8px; }
  .plan-toolbar .date-switch>.button { font-size:10px; padding:8px 10px; min-height:32px; }
  .plan-item { gap:8px; }
  .plan-item-main .task-title { font-size:11px; }
  .planned-input input { width:52px; font-size:11px; padding:7px 4px; }
  .planned-input>span { font-size:9px; }
  .plan-item-order .icon-button { width:19px; height:21px; }
  .remove-plan { width:17px; height:22px; padding:1px; }
  .remove-plan .icon { width:13px; height:13px; }
  .plan-actions { gap:7px; }
  .plan-actions .button { font-size:11px; padding:9px 10px; }
  .availability-details .field-grid { grid-template-columns:1fr; }
  .event-card { grid-template-columns:65px minmax(0,1fr); gap:12px; }
  .event-actions { grid-column:2; flex-direction:row; flex-wrap:wrap; justify-content:flex-start; margin-top:0; }
  .event-body h3 { font-size:13px; }
  .event-body p { font-size:10px; }
  .event-time strong { font-size:18px; }
  .event-time span { font-size:10px; }
  .event-actions .button { font-size:10px; }
  .team-overview { gap:20px; padding:13px 15px; }
  .team-overview strong { font-size:22px; }
  .team-overview span { font-size:9px; }
  .team-note { font-size:10px; }
  .team-grid { gap:15px; }
  .team-person { padding:21px; }
  .person-plan-grid { grid-template-columns:1fr; }
  .viewing-person strong { font-size:18px; }
  .viewing-person small { font-size:10px; }
  .viewing-person>.button { font-size:10px; }
  .viewing-person .avatar { width:39px; height:39px; border-radius:10px; font-size:16px; }
  .notification-item { gap:10px; flex-wrap:wrap; }
  .notification-title h3 { font-size:12px; }
  .notification-main>p { font-size:11px; }
  .notification-item>.button { margin-left:43px; font-size:10px; padding:6px 9px; min-height:30px; }
  .settings-grid { gap:16px; }
  .settings-tabs { gap:1px; }
  .settings-tabs>button { font-size:10px; padding:8px 10px; }
  .settings-grid .panel>p { font-size:12px; }
  .settings-grid .button { font-size:11px; }
  .calendar-admin-list>article { gap:10px; flex-wrap:wrap; }
  .calendar-admin-icon { width:35px; height:35px; border-radius:10px; }
  .calendar-admin-list>article>div:last-child { margin-left:45px; }
  .recurrence-candidate { flex-direction:column; align-items:flex-start; gap:12px; }
  .recurrence-candidate>.button-group { max-width:100%; }
  .sync-job { gap:10px; }
  .sync-job>.sync-times { grid-column:1/-1; gap:10px; font-size:10px; }
  .audit-title { align-items:flex-start; flex-direction:column; gap:4px; }
  .audit-diff { grid-template-columns:1fr; }
  dialog { width:calc(100vw - 22px); max-height:calc(100dvh - 24px); border-radius:15px; }
  dialog.wide { width:calc(100vw - 22px); }
  .dialog-header { padding:19px 20px 15px; }
  .dialog-header h2 { font-size:17px; }
  .dialog-body { padding:20px; }
  .dialog-footer { padding:14px 20px; gap:8px; }
  .dialog-footer .button { font-size:12px; padding:10px 12px; }
  .field-grid { grid-template-columns:1fr; }
  .field-grid .full { grid-column:auto; }
  .field { margin-bottom:17px; }
  .field>span { font-size:12px; }
  input,select,textarea { font-size:16px; }
  .progress-report { padding:14px; }
  .progress-report .field-grid { grid-template-columns:1fr 1fr; gap:12px; }
  .progress-report .field>span { font-size:10px; }
  .progress-report .input-with-unit input { font-size:16px; padding:10px; }
  .completion-preview { gap:6px; }
  .completion-preview>div { padding:11px 9px; }
  .completion-preview span { font-size:9px; }
  .completion-preview strong { font-size:15px; }
  .detail-title h3 { font-size:18px; }
  .grid-details { gap:0 20px; }
  .detail-list dt { font-size:10px; }
  .detail-list dd { font-size:11px; }
  .form-error { margin:0 20px 17px; }
  .toasts { right:13px; bottom:15px; width:calc(100vw - 26px); }
  .toast { font-size:11px; padding:13px; }
  .login-page { grid-template-columns:1fr; }
  .login-story { padding:25px 28px; }
  .login-story>.brand { font-size:19px; }
  .login-story>.brand img { width:34px; height:34px; }
  .login-story>.brand small { font-size:7px; }
  .login-copy { padding:29px 0 10px; }
  .login-copy>.eyebrow { font-size:8px; }
  .login-copy>h1 { font-size:32px; letter-spacing:-1px; line-height:1.65; margin-top:12px; }
  .login-copy>h1 br { display:none; }
  .login-copy>p:last-of-type { font-size:11px; margin-top:11px; }
  .login-copy>p:last-of-type br { display:none; }
  .login-preview,.login-story>footer { display:none; }
  .login-form-area { padding:35px 29px 64px; }
  .login-form h2 { font-size:21px; }
  .login-form>.subdued { font-size:11px; margin-bottom:25px; }
  .login-form>.eyebrow { font-size:9px; }
  .login-form .field input { font-size:16px; }
  .login-footnote { bottom:20px; font-size:8px; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation-duration:.01ms!important; transition:none!important; scroll-behavior:auto!important; } }

/* Saved plan versions remain readable without changing current tasks. */
.plan-revision { border-top:1px solid var(--line); padding:14px 0; }
.plan-revision>summary { cursor:pointer; color:var(--ink); line-height:2; }
.plan-revision>summary>strong { margin-right:12px; }
.plan-revision>summary>span:not(.badge) { color:var(--muted); font-size:12px; margin-right:10px; }
.revision-body { padding-top:12px; }
.revision-body .detail-list { margin:8px 0 18px; }
.revision-body .data-table { font-size:12px; }
