:root { --ink:#10233f; --muted:#68768c; --line:#e4e8ee; --canvas:#f4f6f8; --surface:#fff; --navy:#0b2146; --blue:#3b63f3; --blue-soft:#edf1ff; --teal:#0b9c86; --teal-soft:#e4f7f3; --amber:#c67b1a; --amber-soft:#fff3dd; --red:#c74444; --red-soft:#fff0ef; }
* { box-sizing:border-box; }
html { background:var(--canvas); }
body { margin:0; background:var(--canvas); color:var(--ink); font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-size:14px; -webkit-font-smoothing:antialiased; }
button,input,textarea { font:inherit; } button { color:inherit; }
[hidden] { display:none!important; }
.view-panel { animation:view-enter .18s ease; }
@keyframes view-enter { from { opacity:0; transform:translateY(4px); } to { opacity:1; transform:none; } }
.app-shell { display:grid; grid-template-columns:236px minmax(0,1fr); min-height:100vh; }
.sidebar { position:sticky; top:0; height:100vh; z-index:10; display:flex; flex-direction:column; background:var(--navy); color:#fff; padding:28px 18px 20px; }
.brand { display:flex; align-items:center; gap:12px; padding:0 10px 32px; }
.brand-mark { display:grid; place-items:center; width:36px; height:36px; border-radius:11px; background:#fff; color:var(--navy); font-size:19px; font-weight:800; letter-spacing:-.06em; }
.brand-copy { display:grid; gap:1px; } .brand-copy strong { font-size:16px; letter-spacing:-.02em; } .brand-copy small { color:#93a2bd; font-size:11px; }
.main-nav { display:grid; gap:6px; }
.nav-item { border:0; background:transparent; color:#9eabc0; border-radius:10px; min-height:44px; padding:0 12px; display:flex; align-items:center; gap:13px; cursor:pointer; text-align:left; font-weight:550; transition:.18s ease; }
.nav-item:hover { background:rgba(255,255,255,.06); color:#fff; } .nav-item.active { background:#fff; color:var(--navy); box-shadow:0 7px 20px rgba(0,0,0,.12); }
.nav-icon { width:19px; text-align:center; font-size:17px; line-height:1; }
.sidebar-foot { margin-top:auto; padding-top:20px; border-top:1px solid rgba(255,255,255,.1); }
.profile { width:100%; border:0; background:transparent; display:grid; grid-template-columns:36px 1fr auto; align-items:center; gap:10px; padding:7px 5px; color:#fff; text-align:left; cursor:pointer; }
.profile .avatar { display:grid; place-items:center; width:36px; height:36px; border-radius:50%; background:#365079; font-size:11px; font-weight:750; }
.profile strong,.profile small { display:block; } .profile strong { font-size:12px; } .profile small { color:#93a2bd; font-size:9px; margin-top:2px; } .profile-more { color:#7284a1; letter-spacing:1px; }
.main-content { min-width:0; }
.topbar { height:70px; background:rgba(255,255,255,.92); border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; gap:20px; padding:0 32px; position:sticky; top:0; z-index:8; backdrop-filter:blur(12px); }
.command-button { width:min(390px,44vw); height:38px; border:1px solid #dfe4eb; border-radius:10px; background:#f7f8fa; display:flex; align-items:center; gap:10px; padding:0 11px; color:#778397; cursor:pointer; text-align:left; }
.command-button>span:nth-child(2) { flex:1; } .command-button kbd { border:1px solid #d7dde5; border-radius:5px; background:#fff; padding:2px 6px; font-size:10px; color:#6f7b8e; box-shadow:0 1px 1px rgba(16,35,63,.05); }
.top-actions { position:relative; display:flex; align-items:center; gap:10px; } .icon-button { position:relative; width:38px; height:38px; border:1px solid var(--line); background:#fff; border-radius:10px; cursor:pointer; font-size:19px; }
.notification-dot { position:absolute; width:7px; height:7px; border-radius:50%; background:#e45b54; border:2px solid #fff; right:7px; top:7px; }
.quick-note,.primary-button { border:0; border-radius:9px; background:var(--blue); color:#fff; font-weight:700; cursor:pointer; }
.quick-note,.primary-button,.chat-head>button,.attach { display:inline-flex; align-items:center; justify-content:center; gap:7px; }
.quick-note { height:38px; padding:0 15px; display:flex; align-items:center; gap:7px; }
.dashboard-wrap { max-width:1240px; margin:0 auto; padding:33px 34px 42px; }
.welcome-row,.page-heading { display:flex; align-items:end; justify-content:space-between; gap:30px; margin-bottom:24px; }
.eyebrow { margin:0 0 9px; color:#778498; font-size:11px; font-weight:750; text-transform:uppercase; letter-spacing:.09em; }
h1 { font-size:clamp(28px,3vw,39px); line-height:1.05; letter-spacing:-.045em; margin:0; font-weight:750; }
.welcome-copy { color:var(--muted); font-size:15px; margin:7px 0 0; }
.month-progress { width:185px; } .progress-copy { display:flex; justify-content:space-between; align-items:baseline; font-size:12px; color:var(--muted); } .progress-copy strong { color:var(--ink); font-size:14px; }
.progress-track { margin:7px 0 6px; height:5px; border-radius:999px; background:#dde3e9; overflow:hidden; } .progress-track span { display:block; height:100%; border-radius:inherit; background:var(--teal); transition:width .3s ease; }
.month-progress small { color:#8a95a6; font-size:10px; }
.manager-notice { min-height:58px; display:grid; grid-template-columns:28px 1fr auto 25px; align-items:center; gap:13px; background:#f0f3ff; border:1px solid #dfe5ff; border-radius:12px; padding:9px 13px; margin-bottom:17px; }
.notice-mark { display:grid; place-items:center; width:27px; height:27px; border-radius:8px; background:var(--blue); color:#fff; font-weight:800; font-family:Georgia,serif; }
.notice-copy { display:flex; align-items:baseline; gap:13px; min-width:0; } .notice-label { color:#3550b6; font-size:10px; text-transform:uppercase; letter-spacing:.08em; font-weight:800; white-space:nowrap; }
.notice-copy p { margin:0; color:#42516b; font-size:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.text-link,.dismiss { border:0; background:transparent; cursor:pointer; } .text-link { color:#3554c7; font-size:11px; font-weight:750; white-space:nowrap; } .text-link span { margin-left:4px; } .dismiss { color:#7f8ba1; font-size:18px; }
.dashboard-grid { display:grid; grid-template-columns:minmax(0,1.23fr) minmax(360px,.77fr); gap:17px; }
.focus-card,.week-card,.mini-card { background:var(--surface); border:1px solid var(--line); box-shadow:0 2px 5px rgba(16,35,63,.025); }
.focus-card,.week-card { border-radius:16px; overflow:hidden; }
.card-head { display:flex; align-items:start; justify-content:space-between; gap:20px; padding:21px 22px 16px; } .card-head.compact { padding-bottom:13px; }
.section-kicker { margin:0 0 6px; color:#7b8798; font-size:10px; text-transform:uppercase; letter-spacing:.08em; font-weight:800; }
.section-kicker .pulse { display:inline-block; width:6px; height:6px; margin-right:6px; border-radius:50%; background:#e1594f; box-shadow:0 0 0 4px var(--red-soft); }
.card-head h2 { margin:0; font-size:19px; letter-spacing:-.025em; } .subtle-button { border:1px solid var(--line); background:#fff; border-radius:8px; padding:7px 10px; color:#68768a; font-size:10px; font-weight:700; cursor:pointer; }
.task-list { border-top:1px solid #edf0f3; }
.task-row { width:100%; min-height:71px; display:grid; grid-template-columns:22px minmax(0,1fr) auto 12px; gap:12px; align-items:center; padding:12px 20px; border:0; border-bottom:1px solid #edf0f3; background:#fff; cursor:pointer; text-align:left; transition:background .15s ease; }
.task-row:hover { background:#fafbfc; } .task-row.done .task-main { opacity:.52; text-decoration:line-through; }
.task-check { width:20px; height:20px; display:grid; place-items:center; border:1.5px solid #cbd3dd; border-radius:6px; color:#fff; font-size:11px; } .task-check.checked { border-color:var(--teal); background:var(--teal); }
.task-main { min-width:0; } .task-main strong,.task-main small { display:block; } .task-main strong { font-size:12px; line-height:1.4; } .task-main small { color:#7a8697; font-size:10px; margin-top:4px; }
.task-meta { padding:5px 8px; border-radius:6px; font-size:9px; font-weight:750; white-space:nowrap; } .task-meta.urgent { color:var(--red); background:var(--red-soft); } .task-meta.planned { color:#345ac7; background:var(--blue-soft); } .task-meta.quiet { color:#707e90; background:#f1f3f5; }
.row-arrow { color:#a3acb8; font-size:20px; }
.focus-foot { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:15px 20px; } .focus-progress { width:145px; color:#7c8797; font-size:9px; } .focus-progress>div { height:4px; background:#e9edf0; border-radius:999px; margin-top:6px; overflow:hidden; } .focus-progress i { display:block; height:100%; background:var(--teal); transition:width .3s ease; } .primary-button { padding:9px 12px; font-size:10px; }
.week-strip { display:grid; grid-template-columns:repeat(5,1fr); gap:6px; padding:0 17px 16px; }
.day { position:relative; min-height:61px; border:1px solid #e7ebef; background:#fff; border-radius:10px; display:grid; place-items:center; align-content:center; gap:2px; cursor:pointer; } .day small { color:#8792a2; font-size:9px; } .day strong { font-size:14px; } .day>span { display:flex; gap:2px; min-height:3px; } .day i { width:3px; height:3px; border-radius:50%; background:#acb5c0; }
.day.active { border-color:var(--blue); background:var(--blue); color:#fff; box-shadow:0 7px 16px rgba(59,99,243,.2); } .day.active small { color:#dfe6ff; } .day.active i { background:#fff; }
.calendar-link { width:29px; height:29px; border:1px solid var(--line); background:#fff; border-radius:8px; color:#64758a; cursor:pointer; }
.agenda { border-top:1px solid #edf0f3; padding:6px 18px 4px; } .agenda-item { display:grid; grid-template-columns:40px 3px minmax(0,1fr) auto; gap:10px; align-items:center; min-height:58px; }
.agenda-item time { color:#7f8a9a; font-size:10px; align-self:start; margin-top:16px; } .agenda-line { height:34px; border-radius:9px; background:var(--teal); } .agenda-line.blue { background:var(--blue); } .agenda-line.violet { background:#8666dc; }
.agenda-item strong,.agenda-item small { display:block; } .agenda-item strong { font-size:11px; } .agenda-item small { color:#8a94a3; margin-top:3px; font-size:9px; }
.status-chip { color:#087865; background:var(--teal-soft); padding:5px 7px; border-radius:6px; font-size:8px; font-weight:800; white-space:nowrap; }
.full-link { width:calc(100% - 36px); margin:0 18px 15px; padding:10px; border:0; border-radius:8px; background:#f5f7f9; color:#4c627c; font-size:10px; font-weight:750; cursor:pointer; } .full-link span { margin-left:5px; }
.lower-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:17px; margin-top:17px; } .mini-card { min-height:75px; border-radius:13px; padding:13px 14px; display:grid; grid-template-columns:38px 1fr 24px; align-items:center; gap:11px; }
.mini-icon { width:38px; height:38px; border-radius:10px; display:grid; place-items:center; font-size:16px; font-weight:700; } .mini-icon.amber { background:var(--amber-soft); color:var(--amber); } .mini-icon.cyan { background:var(--teal-soft); color:var(--teal); } .mini-icon.indigo { background:var(--blue-soft); color:var(--blue); }
.mini-card small,.mini-card strong { display:block; } .mini-card small { color:#8994a4; font-size:9px; margin-bottom:4px; } .mini-card strong { font-size:11px; } .mini-card>button { border:0; background:transparent; color:#98a2af; font-size:19px; cursor:pointer; } .ai-card { border-color:#dfe5ff; }
.mini-card.ai-card { cursor:pointer; }

/* Shared secondary views */
.page-heading { margin-bottom:28px; }
.page-heading h1 { font-size:34px; }
.heading-actions { display:flex; align-items:center; gap:13px; border:1px solid var(--line); background:#fff; border-radius:11px; padding:5px; }
.heading-actions button { width:30px; height:30px; border:0; background:#f4f6f8; border-radius:7px; cursor:pointer; font-size:18px; }
.heading-actions strong { font-size:12px; min-width:80px; text-align:center; }

/* Month */
.month-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:15px; margin-bottom:17px; }
.month-stats>div { background:#fff; border:1px solid var(--line); border-radius:13px; min-height:76px; display:flex; align-items:center; gap:12px; padding:14px 16px; }
.stat-icon { width:38px; height:38px; display:grid; place-items:center; border-radius:10px; font-weight:800; }
.stat-icon.blue { background:var(--blue-soft); color:var(--blue); } .stat-icon.teal { background:var(--teal-soft); color:var(--teal); } .stat-icon.amber { background:var(--amber-soft); color:var(--amber); }
.month-stats p { margin:0; } .month-stats strong,.month-stats small { display:block; } .month-stats strong { font-size:18px; letter-spacing:-.03em; } .month-stats small { font-size:10px; color:#7c8899; margin-top:2px; }
.month-layout { display:grid; grid-template-columns:minmax(0,1fr) 310px; gap:17px; }
.calendar-card,.side-card { background:#fff; border:1px solid var(--line); border-radius:15px; overflow:hidden; }
.calendar-weekdays { display:grid; grid-template-columns:repeat(7,1fr); border-bottom:1px solid var(--line); background:#fafbfc; }
.calendar-weekdays span { padding:12px 9px; color:#8490a1; font-size:9px; font-weight:800; text-align:center; text-transform:uppercase; letter-spacing:.06em; }
.calendar-grid { display:grid; grid-template-columns:repeat(7,1fr); }
.calendar-cell { position:relative; min-height:98px; border:0; border-right:1px solid #edf0f3; border-bottom:1px solid #edf0f3; background:#fff; padding:9px; text-align:left; cursor:pointer; overflow:hidden; }
.calendar-cell:nth-child(7n) { border-right:0; } .calendar-cell:nth-last-child(-n+7) { border-bottom:0; } .calendar-cell.empty { background:#fafbfc; cursor:default; }
.calendar-cell:hover:not(.empty) { background:#fafbff; } .calendar-cell.selected { box-shadow:inset 0 0 0 2px var(--blue); background:#f7f8ff; }
.cell-number { display:grid; place-items:center; width:23px; height:23px; border-radius:7px; font-size:10px; font-weight:700; }
.calendar-cell.selected .cell-number { background:var(--blue); color:#fff; }
.cell-events { display:grid; gap:3px; margin-top:7px; } .cell-events i { display:block; padding:4px 5px; border-radius:4px; font-size:8px; font-style:normal; font-weight:700; overflow:hidden; text-overflow:ellipsis; }
.cell-events i.blue { background:var(--blue-soft); color:#3d5ec7; } .cell-events i.teal { background:var(--teal-soft); color:#087866; } .cell-events i.amber { background:var(--amber-soft); color:#a26314; } .cell-events i.violet { background:#f0ebff; color:#7652ca; } .cell-events i.red { background:var(--red-soft); color:var(--red); }
.month-side { display:grid; gap:17px; align-content:start; }
.side-card { padding:19px; } .side-head { display:flex; justify-content:space-between; gap:12px; margin-bottom:15px; } .side-head h2 { font-size:16px; margin:0; }
.count-badge { align-self:start; background:var(--teal-soft); color:#087866; border-radius:6px; padding:5px 7px; font-size:9px; font-weight:800; }
.ritual-list { display:grid; gap:7px; } .ritual-list>button { display:flex; align-items:center; gap:10px; border:1px solid #e9edf0; background:#fff; border-radius:9px; padding:10px; text-align:left; cursor:pointer; }
.ritual-list>button>span { width:20px; height:20px; border:1.5px solid #cbd3dd; border-radius:6px; display:grid; place-items:center; color:#fff; font-size:10px; }
.ritual-list>button.done>span { background:var(--teal); border-color:var(--teal); } .ritual-list>button.done p { opacity:.55; text-decoration:line-through; }
.ritual-list p { margin:0; } .ritual-list strong,.ritual-list small { display:block; } .ritual-list strong { font-size:11px; } .ritual-list small { margin-top:3px; font-size:9px; color:#8793a3; }
.next-card { display:grid; grid-template-columns:48px 1fr; gap:13px; align-items:center; } .next-card>.section-kicker { grid-column:1/-1; }
.date-block { width:46px; height:52px; border-radius:9px; background:var(--red-soft); color:var(--red); display:grid; place-items:center; align-content:center; } .date-block strong { font-size:19px; line-height:1; } .date-block span { font-size:7px; font-weight:800; margin-top:3px; }
.next-card>div:last-child>strong,.next-card>div:last-child>small { display:block; } .next-card>div:last-child>strong { font-size:11px; } .next-card>div:last-child>small { color:#8793a3; font-size:9px; margin:3px 0 6px; } .next-card>div:last-child>button { padding:0; border:0; background:transparent; color:var(--blue); font-size:9px; font-weight:750; cursor:pointer; }

/* Tools */
.tools-controls { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; margin-bottom:16px; }
.tools-search { height:48px; display:flex; align-items:center; gap:10px; background:#fff; border:1px solid var(--line); border-radius:12px; padding:0 13px; }
.tools-search:focus-within { border-color:#9cb0ff; box-shadow:0 0 0 3px rgba(59,99,243,.09); } .tools-search>span { font-size:18px; color:#738093; } .tools-search input { flex:1; min-width:0; border:0; outline:0; color:var(--ink); } .tools-search input::placeholder { color:#9aa4b2; } .tools-search kbd { border:1px solid #dfe4e9; background:#f7f8fa; border-radius:5px; padding:3px 6px; font-size:9px; color:#7e8998; }
.favorite-filter { border:1px solid var(--line); background:#fff; border-radius:12px; padding:0 16px; color:#6c788b; font-weight:700; cursor:pointer; } .favorite-filter>span { margin-left:7px; background:var(--blue-soft); color:var(--blue); padding:3px 6px; border-radius:999px; font-size:9px; }
.category-tabs { display:flex; gap:7px; margin-bottom:18px; overflow:auto; padding-bottom:2px; } .category-tabs button { border:1px solid #e0e5ea; background:#fff; color:#6d7b8e; border-radius:999px; padding:7px 12px; font-size:10px; font-weight:700; cursor:pointer; white-space:nowrap; } .category-tabs button.active { border-color:var(--navy); background:var(--navy); color:#fff; }
.tool-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:15px; }
.tool-card { background:#fff; border:1px solid var(--line); border-radius:14px; padding:17px; min-height:216px; display:flex; flex-direction:column; transition:transform .15s ease,box-shadow .15s ease; } .tool-card:hover { transform:translateY(-2px); box-shadow:0 10px 25px rgba(16,35,63,.07); }
.tool-card-top { display:flex; align-items:start; justify-content:space-between; } .tool-logo { width:41px; height:41px; display:grid; place-items:center; border-radius:11px; font-weight:850; font-size:16px; } .tool-logo.blue { background:var(--blue-soft); color:var(--blue); } .tool-logo.teal { background:var(--teal-soft); color:var(--teal); } .tool-logo.amber { background:var(--amber-soft); color:var(--amber); } .tool-logo.violet { background:#f0ebff; color:#7652ca; } .tool-logo.navy { background:#e9eef6; color:var(--navy); } .tool-logo.pink { background:#ffedf5; color:#bd497b; }
.star { border:0; background:transparent; color:#c5ccd5; cursor:pointer; font-size:17px; } .star.active { color:#e4a12d; }
.tool-meta { display:flex; gap:6px; align-items:center; color:#8793a3; font-size:8px; text-transform:uppercase; font-weight:750; letter-spacing:.06em; margin-top:17px; } .tool-meta i { font-style:normal; color:#c8ced6; }
.tool-card h2 { margin:7px 0 5px; font-size:16px; } .tool-card>p { color:#6e7b8d; font-size:10px; line-height:1.55; margin:0 0 16px; }
.tool-foot { margin-top:auto; padding-top:12px; border-top:1px solid #edf0f3; display:flex; align-items:center; justify-content:space-between; gap:10px; } .tool-foot small { color:#929dab; font-size:8px; } .tool-foot button { border:0; background:transparent; color:var(--blue); font-size:10px; font-weight:800; cursor:pointer; }
.empty-state { background:#fff; border:1px dashed #d7dde5; border-radius:15px; text-align:center; padding:50px 20px; } .empty-state>span { font-size:27px; color:#99a4b3; } .empty-state h2 { font-size:16px; margin:12px 0 5px; } .empty-state p { color:#7c8898; font-size:11px; } .empty-state button { border:0; background:var(--blue); color:#fff; border-radius:8px; padding:8px 12px; font-weight:700; cursor:pointer; }

/* AI */
.ai-layout { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:17px; }
.chat-card,.context-panel { background:#fff; border:1px solid var(--line); border-radius:15px; overflow:hidden; }
.chat-card { min-height:600px; display:flex; flex-direction:column; }
.chat-head { min-height:65px; border-bottom:1px solid var(--line); display:grid; grid-template-columns:36px 1fr auto; align-items:center; gap:10px; padding:10px 17px; } .ai-orb,.message-avatar { display:grid; place-items:center; border-radius:10px; background:var(--blue); color:#fff; }
.ai-orb { width:36px; height:36px; font-size:15px; } .chat-head strong,.chat-head small { display:block; } .chat-head strong { font-size:12px; } .chat-head small { color:#8490a1; font-size:8px; margin-top:2px; } .chat-head small i { display:inline-block; width:5px; height:5px; border-radius:50%; background:var(--teal); }
.chat-head>button { border:1px solid var(--line); background:#fff; border-radius:8px; padding:7px 9px; color:#69778a; font-size:9px; font-weight:700; cursor:pointer; }
.messages { flex:1; padding:25px 24px 10px; display:flex; flex-direction:column; gap:18px; max-height:330px; overflow:auto; }
.message { display:flex; gap:10px; align-items:flex-start; } .message>div { max-width:76%; background:#f3f5f7; border-radius:4px 12px 12px 12px; padding:12px 14px; color:#44536a; font-size:11px; line-height:1.6; }
.message.user { justify-content:flex-end; } .message.user>div { background:var(--blue); color:#fff; border-radius:12px 4px 12px 12px; }
.message-avatar { flex:0 0 auto; width:28px; height:28px; font-size:11px; }
.suggestions { display:flex; gap:7px; flex-wrap:wrap; padding:8px 24px 14px; } .suggestions button { border:1px solid #dfe4eb; background:#fff; border-radius:8px; color:#5b6b80; font-size:9px; padding:7px 9px; cursor:pointer; } .suggestions button span { margin-left:5px; color:#9ba4b1; }
.chat-composer { margin:0 18px; border:1px solid #dfe4eb; border-radius:12px; padding:10px; } .chat-composer:focus-within { border-color:#91a6ff; box-shadow:0 0 0 3px rgba(59,99,243,.08); } .chat-composer textarea { width:100%; border:0; resize:none; outline:0; color:var(--ink); line-height:1.5; } .chat-composer textarea::placeholder { color:#a0a9b5; }
.chat-composer>div { display:flex; justify-content:space-between; align-items:center; } .attach { border:0; background:transparent; color:#778598; font-size:9px; cursor:pointer; } .send-button { width:30px; height:30px; border:0; border-radius:8px; background:var(--blue); color:#fff; cursor:pointer; font-weight:900; }
.ai-disclaimer { text-align:center; color:#a0a8b3; font-size:8px; margin:8px 0 12px; }
.context-panel { padding-bottom:15px; align-self:start; } .context-head { padding:18px; border-bottom:1px solid var(--line); } .context-head h2 { margin:0; font-size:15px; }
.context-item { display:grid; grid-template-columns:34px 1fr 18px; gap:10px; align-items:center; margin:0 15px; padding:13px 2px; border-bottom:1px solid #eef1f3; } .context-item>span { width:32px; height:32px; display:grid; place-items:center; border-radius:9px; font-weight:800; } .context-item>span.blue { background:var(--blue-soft); color:var(--blue); } .context-item>span.teal { background:var(--teal-soft); color:var(--teal); } .context-item>span.violet { background:#f0ebff; color:#7652ca; } .context-item>span.amber { background:var(--amber-soft); color:var(--amber); }
.context-item strong,.context-item small { display:block; } .context-item strong { font-size:10px; } .context-item small { font-size:8px; color:#8994a4; margin-top:3px; } .context-item>i { color:var(--teal); font-style:normal; font-size:10px; }
.privacy-note { display:flex; gap:9px; margin:15px 15px 0; border-radius:9px; background:#f4f7ff; padding:10px; color:#405b9c; } .privacy-note>span { font-size:15px; } .privacy-note p { margin:0; } .privacy-note strong,.privacy-note small { display:block; } .privacy-note strong { font-size:9px; } .privacy-note small { font-size:8px; line-height:1.4; margin-top:3px; opacity:.78; }

/* Notification centre */
.icon-button.active { border-color:#a9b8f5; background:var(--blue-soft); color:var(--blue); }
.notification-count { position:absolute; top:-7px; right:-7px; min-width:21px; height:21px; padding:0 5px; display:grid; place-items:center; border:3px solid #fff; border-radius:999px; background:#d94848; color:#fff; font-size:10px; font-weight:850; line-height:1; }
.notification-scrim { position:fixed; inset:0; z-index:40; border:0; background:rgba(11,33,70,.08); backdrop-filter:blur(1px); cursor:default; }
.notification-panel { position:absolute; z-index:50; top:56px; right:0; width:430px; max-height:min(650px,calc(100vh - 95px)); display:flex; flex-direction:column; overflow:hidden; background:#fff; border:1px solid #dfe4ea; border-radius:16px; box-shadow:0 22px 60px rgba(16,35,63,.2); text-align:left; }
.notification-head { min-height:68px; display:flex; align-items:center; justify-content:space-between; gap:14px; padding:14px 16px; border-bottom:1px solid var(--line); }
.notification-head>div { display:flex; align-items:center; gap:8px; } .notification-head>div:first-child strong { font-size:17px; } .notification-head>div:first-child span { padding:3px 7px; border-radius:999px; background:var(--red-soft); color:var(--red); font-size:10px; font-weight:800; }
.notification-head button { border:0; background:transparent; color:#69778b; cursor:pointer; }
.notification-head>div:last-child>button:first-child { display:flex; align-items:center; gap:5px; font-size:11px; font-weight:750; }
.notification-head .close-panel { width:30px; height:30px; display:grid; place-items:center; border-radius:8px; }
.notification-head .close-panel:hover { background:#f1f3f5; }
.notification-list { overflow:auto; }
.notification-item { position:relative; width:100%; min-height:92px; display:grid; grid-template-columns:42px 1fr 8px; align-items:start; gap:12px; padding:15px 16px; border:0; border-bottom:1px solid #edf0f3; background:#fff; text-align:left; cursor:pointer; }
.notification-item:hover { background:#fafbfc; } .notification-item.unread { background:#f7f9ff; }
.notification-icon { width:42px; height:42px; display:grid; place-items:center; border-radius:11px; }
.notification-icon.violet { background:#f0ebff; color:#7652ca; } .notification-icon.amber { background:var(--amber-soft); color:var(--amber); } .notification-icon.blue { background:var(--blue-soft); color:var(--blue); } .notification-icon.red { background:var(--red-soft); color:var(--red); }
.notification-copy>span { display:flex; align-items:baseline; justify-content:space-between; gap:10px; } .notification-copy strong { font-size:13px; } .notification-copy time { flex:0 0 auto; color:#99a3b0; font-size:9px; }
.notification-copy small { display:block; color:#69778a; font-size:11px; line-height:1.45; margin:4px 0 7px; } .notification-copy em { color:#8d98a7; font-size:9px; font-style:normal; font-weight:700; text-transform:uppercase; letter-spacing:.06em; }
.notification-item>i { width:7px; height:7px; margin-top:6px; border-radius:50%; background:var(--blue); }
.notification-foot { min-height:48px; display:flex; align-items:center; justify-content:center; gap:5px; border:0; background:#fff; color:var(--blue); font-size:11px; font-weight:800; cursor:pointer; }

/* Notes */
.note-composer { background:#fff; border:1px solid var(--line); border-radius:15px; padding:18px; margin-bottom:24px; }
.composer-title { display:flex; align-items:center; gap:10px; margin-bottom:12px; } .composer-title>span { width:33px; height:33px; display:grid; place-items:center; border-radius:9px; background:var(--blue-soft); color:var(--blue); font-size:17px; } .composer-title strong,.composer-title small { display:block; } .composer-title strong { font-size:12px; } .composer-title small { color:#8b96a5; font-size:9px; margin-top:2px; }
.note-composer textarea { width:100%; border:1px solid #e2e6eb; border-radius:10px; resize:vertical; padding:12px; outline:0; color:var(--ink); line-height:1.5; background:#fbfcfd; } .note-composer textarea:focus { border-color:#9aafff; box-shadow:0 0 0 3px rgba(59,99,243,.07); }
.note-actions { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-top:11px; } .note-actions>div { display:flex; gap:6px; align-items:center; flex-wrap:wrap; } .note-actions>div>span { color:#8792a1; font-size:9px; margin-right:3px; } .note-actions>div>button { border:1px solid #e1e5ea; border-radius:999px; background:#fff; color:#718094; padding:5px 8px; font-size:8px; cursor:pointer; } .note-actions>div>button.active { border-color:#a8b8f9; background:var(--blue-soft); color:#3d5ec7; }
.save-note { border:0; background:var(--blue); color:#fff; border-radius:8px; padding:9px 12px; font-size:9px; font-weight:800; cursor:pointer; white-space:nowrap; }
.notes-head { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:13px; } .notes-head>div { display:flex; align-items:center; gap:7px; } .notes-head h2 { font-size:17px; margin:0; } .notes-head>div:first-child>span { background:#e8ecf1; color:#69778a; border-radius:999px; padding:3px 7px; font-size:8px; font-weight:800; } .notes-head button { border:1px solid #e1e5ea; background:#fff; color:#768396; border-radius:7px; padding:6px 8px; font-size:8px; cursor:pointer; }
.notes-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:15px; } .note-card { min-height:190px; display:flex; flex-direction:column; background:#fff; border:1px solid var(--line); border-radius:13px; padding:15px; }
.note-top { display:flex; align-items:center; justify-content:space-between; } .note-top>button { border:0; background:transparent; color:#9ba4b0; cursor:pointer; } .note-tag { border-radius:5px; padding:4px 7px; font-size:8px; font-weight:800; } .tag-workshop { background:var(--teal-soft); color:#087866; } .tag-shadowing { background:#f0ebff; color:#7652ca; } .tag-idée,.tag-idea { background:var(--amber-soft); color:#9c6219; } .tag-todo { background:var(--red-soft); color:var(--red); } .tag-meeting { background:var(--blue-soft); color:#345ac7; }
.note-card h3 { font-size:13px; margin:14px 0 7px; } .note-card>p { color:#68768a; font-size:10px; line-height:1.55; margin:0 0 15px; } .note-foot { margin-top:auto; padding-top:11px; border-top:1px solid #edf0f3; display:flex; align-items:center; justify-content:space-between; gap:10px; } .note-foot small { color:#9aa3af; font-size:8px; } .note-foot button { border:0; background:transparent; color:var(--blue); font-size:8px; font-weight:700; cursor:pointer; }

/* Rich note editor */
.rich-note-composer { background:#fff; border:1px solid var(--line); border-radius:17px; padding:22px; margin-bottom:28px; box-shadow:0 3px 8px rgba(16,35,63,.03); }
.rich-note-head { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:18px; }
.rich-note-head>div:first-child { display:flex; align-items:center; gap:12px; } .rich-note-head>div:first-child>span { width:42px; height:42px; display:grid; place-items:center; border-radius:11px; background:var(--blue-soft); color:var(--blue); }
.rich-note-head strong,.rich-note-head small { display:block; } .rich-note-head strong { font-size:16px; } .rich-note-head small { color:#8490a0; font-size:11px; margin-top:3px; }
.draft-status { display:flex; align-items:center; gap:6px; color:#788698; font-size:10px; } .draft-status i { width:6px; height:6px; border-radius:50%; background:var(--teal); }
.note-title-input { width:100%; border:0; border-bottom:1px solid var(--line); outline:0; padding:5px 2px 14px; color:var(--ink); font-size:24px; font-weight:700; letter-spacing:-.025em; }
.note-title-input::placeholder { color:#b0b8c3; }
.editor-shell { margin-top:14px; border:1px solid #dfe4ea; border-radius:12px; overflow:hidden; transition:border-color .15s ease,box-shadow .15s ease; }
.editor-shell:focus-within { border-color:#9aafff; box-shadow:0 0 0 3px rgba(59,99,243,.08); }
.editor-toolbar { min-height:48px; display:flex; align-items:center; gap:3px; padding:6px 8px; border-bottom:1px solid #e5e9ee; background:#f8f9fb; }
.editor-toolbar button { width:34px; height:34px; display:grid; place-items:center; border:0; border-radius:7px; background:transparent; color:#596a80; cursor:pointer; }
.editor-toolbar button:hover { background:#e9edf4; color:var(--navy); } .editor-toolbar>span { width:1px; height:23px; margin:0 5px; background:#dbe0e6; }
.rich-editor { min-height:210px; padding:18px 20px; outline:0; color:#33445c; font-size:15px; line-height:1.75; }
.rich-editor:empty::before { content:attr(data-placeholder); color:#a4adba; pointer-events:none; }
.rich-editor h3 { font-size:21px; margin:7px 0 9px; color:var(--ink); } .rich-editor p { margin:0 0 10px; } .rich-editor ul,.rich-editor ol { padding-left:24px; } .rich-editor blockquote { margin:10px 0; padding:9px 14px; border-left:3px solid var(--blue); background:#f4f6ff; color:#4e6078; }
.editor-meta { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-top:15px; }
.note-taxonomy { display:flex; gap:10px; } .note-taxonomy label { display:grid; gap:5px; color:#7d8999; font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; }
.note-taxonomy select { min-width:160px; height:37px; border:1px solid #dfe4ea; border-radius:8px; background:#fff; color:#516177; padding:0 10px; font-size:11px; text-transform:none; letter-spacing:0; outline:0; }
.editor-save { display:flex; align-items:center; gap:9px; } .editor-save>span { color:#919ba8; font-size:10px; margin-right:3px; }
.secondary-note-action { height:39px; display:flex; align-items:center; gap:6px; border:1px solid #dfe4ea; border-radius:8px; background:#fff; color:#5f6f83; padding:0 12px; font-size:11px; font-weight:750; cursor:pointer; }
.rich-note-composer .save-note { height:39px; padding:0 16px; font-size:11px; }
.note-body { color:#68768a; font-size:13px; line-height:1.6; margin:0 0 14px; max-height:102px; overflow:hidden; }
.note-body p { margin:0 0 6px; } .note-body ul,.note-body ol { margin:5px 0; padding-left:19px; } .note-body blockquote { margin:6px 0; padding-left:8px; border-left:2px solid var(--blue); }
.note-context { display:flex; align-items:center; gap:5px; color:#78879a; font-size:9px; margin-top:auto; margin-bottom:10px; }

/* Readability pass — comfortable scale for desktop workstations */
body { font-size:16px; }
.app-shell { grid-template-columns:260px minmax(0,1fr); }
.sidebar { padding:28px 20px 22px; }
.brand { gap:14px; padding:0 6px 31px; }
.brand-logo { width:56px; height:56px; object-fit:contain; flex:0 0 auto; }
.brand-copy strong { font-family:Georgia,"Times New Roman",serif; font-size:20px; font-weight:700; letter-spacing:-.025em; }
.brand-copy small { font-family:Georgia,"Times New Roman",serif; font-size:13px; font-style:italic; letter-spacing:.025em; margin-top:3px; color:#c4d0e4; }
.nav-item { min-height:50px; padding:0 14px; gap:14px; font-size:15px; }
.nav-icon { width:22px; font-size:20px; }
.nav-icon svg { display:block; }
.profile { grid-template-columns:42px 1fr auto; gap:12px; }
.profile .avatar { width:42px; height:42px; font-size:12px; }
.profile strong { font-size:14px; }
.profile small { font-size:11px; }
.topbar { height:78px; padding:0 38px; }
.command-button { width:min(460px,46vw); height:44px; padding:0 13px; font-size:14px; }
.command-button kbd { font-size:11px; }
.icon-button { width:44px; height:44px; display:grid; place-items:center; }
.quick-note { height:44px; padding:0 17px; font-size:14px; }
.dashboard-wrap { max-width:1480px; padding:38px 42px 54px; }
.welcome-row,.page-heading { margin-bottom:28px; }
.eyebrow { font-size:12px; margin-bottom:10px; }
h1 { font-size:clamp(34px,3vw,44px); }
.page-heading h1 { font-size:40px; }
.welcome-copy { font-size:17px; margin-top:8px; }
.month-progress { width:220px; }
.progress-copy { font-size:14px; }
.progress-copy strong { font-size:17px; }
.month-progress small { font-size:12px; }
.manager-notice { min-height:68px; grid-template-columns:32px 1fr auto 28px; gap:15px; padding:11px 15px; margin-bottom:20px; }
.notice-mark { width:31px; height:31px; }
.notice-label { font-size:11px; }
.notice-copy p { font-size:14px; }
.text-link { font-size:12px; }
.dashboard-grid { grid-template-columns:minmax(0,1.23fr) minmax(420px,.77fr); gap:20px; }
.focus-card,.week-card { border-radius:18px; }
.card-head { padding:25px 25px 19px; }
.section-kicker { font-size:11px; margin-bottom:7px; }
.card-head h2 { font-size:22px; }
.subtle-button { padding:8px 11px; font-size:12px; }
.task-row { min-height:84px; grid-template-columns:24px minmax(0,1fr) auto 14px; gap:14px; padding:15px 23px; }
.task-check { width:23px; height:23px; font-size:12px; }
.task-main strong { font-size:15px; }
.task-main small { font-size:12px; margin-top:5px; }
.task-meta { padding:6px 9px; font-size:11px; }
.focus-foot { padding:18px 23px; }
.focus-progress { width:170px; font-size:11px; }
.primary-button { padding:10px 14px; font-size:12px; }
.primary-button { white-space:nowrap; }
.week-strip { gap:7px; padding:0 20px 19px; }
.day { min-height:72px; }
.day small { font-size:11px; }
.day strong { font-size:17px; }
.agenda { padding:7px 21px 5px; }
.agenda-item { grid-template-columns:48px 4px minmax(0,1fr) auto; gap:12px; min-height:70px; }
.agenda-item time { font-size:12px; margin-top:18px; }
.agenda-line { height:42px; }
.agenda-item strong { font-size:14px; }
.agenda-item small { font-size:11px; margin-top:4px; }
.status-chip { padding:6px 8px; font-size:10px; }
.full-link { padding:12px; font-size:12px; }
.lower-grid { gap:20px; margin-top:20px; }
.mini-card { min-height:90px; grid-template-columns:44px 1fr 26px; padding:16px; }
.mini-icon { width:44px; height:44px; font-size:18px; }
.mini-card small { font-size:11px; }
.mini-card strong { font-size:14px; }
.heading-actions { padding:6px; }
.heading-actions button { width:34px; height:34px; }
.heading-actions strong { font-size:14px; min-width:92px; }
.month-stats { gap:18px; margin-bottom:20px; }
.month-stats>div { min-height:90px; padding:16px 19px; }
.stat-icon { width:44px; height:44px; }
.month-stats strong { font-size:22px; }
.month-stats small { font-size:12px; }
.month-layout { grid-template-columns:minmax(0,1fr) 350px; gap:20px; }
.calendar-weekdays span { padding:14px 9px; font-size:11px; }
.calendar-cell { min-height:116px; padding:11px; }
.cell-number { width:27px; height:27px; font-size:12px; }
.cell-events i { padding:5px 6px; font-size:10px; }
.month-side { gap:20px; }
.side-card { padding:22px; }
.side-head h2 { font-size:19px; }
.count-badge { font-size:11px; }
.ritual-list>button { padding:12px; }
.ritual-list>button>span { width:23px; height:23px; }
.ritual-list strong { font-size:14px; }
.ritual-list small { font-size:11px; }
.next-card>div:last-child>strong { font-size:14px; }
.next-card>div:last-child>small { font-size:11px; }
.next-card>div:last-child>button { font-size:11px; }
.tools-controls { margin-bottom:19px; }
.tools-search { height:54px; padding:0 15px; }
.tools-search input { font-size:14px; }
.tools-search kbd { font-size:11px; }
.favorite-filter { font-size:13px; }
.favorite-filter>span { font-size:11px; }
.category-tabs { margin-bottom:21px; }
.category-tabs button { padding:8px 14px; font-size:12px; }
.tool-grid { gap:18px; }
.tool-card { min-height:252px; padding:20px; }
.tool-logo { width:48px; height:48px; font-size:18px; }
.star { font-size:19px; }
.tool-meta { font-size:10px; margin-top:20px; }
.tool-card h2 { font-size:20px; margin:9px 0 7px; }
.tool-card>p { font-size:13px; line-height:1.6; }
.tool-foot small { font-size:10px; }
.tool-foot button { font-size:12px; }
.chat-card { min-height:660px; }
.chat-head { min-height:74px; grid-template-columns:42px 1fr auto; padding:12px 20px; }
.ai-orb { width:42px; height:42px; font-size:17px; }
.chat-head strong { font-size:15px; }
.chat-head small { font-size:10px; }
.chat-head>button { padding:8px 11px; font-size:11px; }
.messages { padding:28px 27px 12px; max-height:380px; }
.message>div { font-size:14px; padding:14px 16px; }
.suggestions { padding:9px 27px 17px; }
.suggestions button { font-size:11px; padding:8px 10px; }
.chat-composer { margin:0 21px; padding:12px; }
.chat-composer textarea { font-size:14px; }
.attach { font-size:11px; }
.ai-disclaimer { font-size:10px; margin:10px 0 14px; }
.context-head h2 { font-size:18px; }
.context-item { grid-template-columns:38px 1fr 18px; padding:15px 2px; }
.context-item>span { width:36px; height:36px; }
.context-item strong { font-size:13px; }
.context-item small { font-size:10px; }
.privacy-note strong { font-size:11px; }
.privacy-note small { font-size:10px; }
.note-composer { padding:21px; }
.composer-title>span { width:39px; height:39px; }
.composer-title strong { font-size:15px; }
.composer-title small { font-size:11px; }
.note-composer textarea { font-size:14px; padding:14px; }
.note-actions>div>span { font-size:11px; }
.note-actions>div>button { padding:6px 10px; font-size:10px; }
.save-note { padding:10px 14px; font-size:11px; }
.notes-head h2 { font-size:21px; }
.notes-head>div:first-child>span,.notes-head button { font-size:10px; }
.notes-grid { gap:18px; }
.note-card { min-height:225px; padding:18px; }
.note-tag { padding:5px 8px; font-size:10px; }
.note-card h3 { font-size:17px; }
.note-card>p { font-size:13px; line-height:1.6; }
.note-foot small,.note-foot button { font-size:10px; }
button:focus-visible { outline:3px solid rgba(59,99,243,.28); outline-offset:2px; }

@media (max-width:1050px) {
  .app-shell { grid-template-columns:82px minmax(0,1fr); } .sidebar { padding-inline:13px; } .brand { justify-content:center; padding-inline:0; } .brand-copy,.nav-item span:last-child,.profile>span:not(.avatar) { display:none; }
  .nav-item { justify-content:center; padding:0; } .nav-icon { width:auto; } .profile { display:flex; justify-content:center; } .dashboard-grid { grid-template-columns:1fr; }
  .week-card { display:grid; grid-template-columns:minmax(250px,.75fr) minmax(330px,1.25fr); } .week-card .card-head,.week-card .week-strip,.week-card .full-link { grid-column:1; } .week-card .agenda { grid-column:2; grid-row:1 / span 3; border-top:0; border-left:1px solid #edf0f3; padding-top:18px; }
  .tool-grid,.notes-grid { grid-template-columns:repeat(2,1fr); } .ai-layout { grid-template-columns:minmax(0,1fr) 260px; }
  .editor-meta { align-items:stretch; flex-direction:column; } .editor-save { justify-content:flex-end; }
}
@media (max-width:720px) {
  .app-shell { display:block; padding-bottom:65px; } .sidebar { position:fixed; inset:auto 0 0; height:64px; padding:7px 10px; flex-direction:row; align-items:center; border-top:1px solid rgba(255,255,255,.14); } .brand,.sidebar-foot { display:none; }
  .main-nav { width:100%; display:grid; grid-template-columns:repeat(5,1fr); } .nav-item { min-height:49px; border-radius:8px; display:grid; place-items:center; gap:1px; font-size:8px; } .nav-item span:last-child { display:block; } .nav-icon { font-size:15px; }
  .topbar { height:59px; padding:0 16px; } .command-button { width:43px; justify-content:center; } .command-button>span:nth-child(2),.command-button kbd { display:none; } .quick-note { width:38px; padding:0; justify-content:center; font-size:0; } .quick-note span { font-size:16px; }
  .dashboard-wrap { padding:25px 16px; } .welcome-row,.page-heading { align-items:start; } .month-progress { width:112px; } .welcome-copy { font-size:13px; }
  .manager-notice { grid-template-columns:28px 1fr 20px; } .notice-copy { display:block; } .notice-copy p { white-space:normal; margin-top:3px; line-height:1.4; } .text-link { display:none; }
  .dashboard-grid { grid-template-columns:minmax(0,1fr); } .task-row { grid-template-columns:22px minmax(0,1fr) 10px; } .task-meta { display:none; } .focus-foot { flex-wrap:wrap; }
  .week-card { display:block; } .week-card .agenda { border-left:0; border-top:1px solid #edf0f3; } .lower-grid { grid-template-columns:1fr; }
  .month-stats { grid-template-columns:1fr; gap:8px; } .month-layout,.ai-layout { grid-template-columns:1fr; } .calendar-cell { min-height:68px; padding:5px; } .cell-events i { font-size:0; width:6px; height:6px; border-radius:50%; padding:0; } .cell-events { display:flex; gap:2px; }
  .month-side { grid-template-columns:1fr 1fr; } .tools-controls { grid-template-columns:1fr; } .favorite-filter { height:42px; } .tool-grid,.notes-grid { grid-template-columns:1fr; }
  .context-panel { display:none; } .chat-card { min-height:570px; } .message>div { max-width:88%; } .note-actions { align-items:flex-end; } .page-heading { display:block; } .heading-actions { width:max-content; margin-top:15px; }
  .notification-panel { position:fixed; top:64px; right:12px; width:calc(100vw - 24px); max-height:calc(100vh - 80px); } .notification-head>div:last-child>button:first-child { font-size:0; } .notification-head>div:last-child>button:first-child svg { width:18px; height:18px; }
  .rich-note-composer { padding:16px; } .rich-note-head { align-items:flex-start; } .draft-status { display:none; } .note-title-input { font-size:21px; } .editor-toolbar { overflow-x:auto; } .rich-editor { min-height:230px; padding:15px; }
  .note-taxonomy { display:grid; grid-template-columns:1fr 1fr; width:100%; } .note-taxonomy select { width:100%; min-width:0; } .editor-save { flex-wrap:wrap; } .editor-save>span { margin-right:auto; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; } }
