:root{--ink:#102a43;--muted:#5f7185;--line:#dbe5ef;--soft:#f5f8fc;--blue:#2f6fed;--green:#16845b;--red:#b33a3a}
*{box-sizing:border-box}body.md-app{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--soft);line-height:1.5}
.md-topbar{display:flex;align-items:center;gap:20px;background:#fff;border-bottom:1px solid var(--line);padding:0 20px;height:60px;position:sticky;top:0;z-index:10}
.md-brand{font-weight:850;font-size:21px;text-decoration:none;letter-spacing:-.5px}.md-brand span{color:var(--blue)}
.md-ws{font-size:13px;color:var(--muted);font-weight:700}
.md-nav{display:flex;gap:16px;margin-left:auto}.md-nav a{color:#324b63;text-decoration:none;font-weight:700;font-size:14px;padding:6px 2px}.md-nav a.active{color:var(--blue);border-bottom:2px solid var(--blue)}
.md-user{display:flex;align-items:center;gap:12px;font-size:13px}.md-user a{color:var(--muted);text-decoration:none}
.md-main{max-width:1100px;margin:0 auto;padding:26px 18px 60px}
.md-cards{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:26px}
.md-stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px}.md-stat label{display:block;font-size:12px;font-weight:700;color:var(--muted)}.md-stat strong{font-size:26px}
.md-h2{font-size:19px;letter-spacing:-.4px;margin:26px 0 10px}
.md-list{list-style:none;margin:0;padding:0;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.md-item{display:grid;grid-template-columns:120px 1fr auto;gap:12px;align-items:center;padding:12px 16px;border-bottom:1px solid #eef2f7;font-size:14px}
.md-item:last-child{border-bottom:0}
.md-when{color:var(--muted);font-weight:700;font-size:13px}
.md-empty{padding:14px 16px;color:var(--muted)}
.md-btn{border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 14px;font-weight:750;cursor:pointer;font:inherit;color:var(--ink)}
.md-btn.primary{background:var(--blue);color:#fff;border-color:transparent}
.md-inline-form{display:flex;gap:6px;align-items:center}.md-inline-form input{border:1px solid var(--line);border-radius:8px;padding:7px 9px;font:inherit;font-size:13px}
.md-next input[type=text]{width:210px}
.md-two{display:grid;grid-template-columns:minmax(280px,380px) 1fr;gap:18px;align-items:start}
.md-panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px}
.md-form{display:grid;gap:12px}.md-form label{display:grid;gap:5px;font-size:13px;font-weight:700}
.md-form input,.md-form select{border:1px solid var(--line);border-radius:9px;padding:9px 10px;font:inherit}
.md-table{width:100%;border-collapse:collapse;font-size:13px;margin-top:12px}
.md-table th{text-align:left;color:var(--muted);font-size:12px;border-bottom:1px solid var(--line);padding:8px 8px}
.md-table td{padding:9px 8px;border-bottom:1px solid #eef2f7}
.md-search{display:flex;gap:8px}.md-search input{flex:1;border:1px solid var(--line);border-radius:9px;padding:9px 10px;font:inherit}
.md-flash{max-width:1100px;margin:14px auto 0;padding:10px 16px;border-radius:10px;font-weight:700;font-size:14px}
.md-flash.ok{background:#eaf8f1;color:var(--green)}.md-flash.err{background:#fff0f0;color:var(--red)}
@media(max-width:900px){.md-cards{grid-template-columns:repeat(2,1fr)}.md-two{grid-template-columns:1fr}.md-nav{display:flex;flex-wrap:wrap;gap:4px 14px;margin:8px 0 0;width:100%}.md-item{grid-template-columns:1fr;gap:6px}.md-topbar{height:auto;flex-wrap:wrap;padding:10px 14px}}

.md-h1{font-size:26px;letter-spacing:-.6px;margin:0 0 4px}
.md-sub{color:var(--muted);margin:0 0 14px;font-size:14px}.md-sub a{color:var(--blue)}
.md-back{font-size:13px;margin:0 0 10px}.md-back a{color:var(--blue);text-decoration:none;font-weight:700}

.md-check{display:block;font-size:13px;color:#475569;margin:6px 0}

/* Named calendars */
.md-sub-item{display:block;padding:8px 0 8px 22px;border-left:2px solid var(--md-border,#e3e6ee);margin-left:6px}
.md-inline-label{display:inline-flex;align-items:center;gap:6px;font-size:13px}

/* Combined Tasks & Appointments view (Sept 22 prompt, Part 7) */
.md-combined{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}
.md-combined.single{grid-template-columns:1fr}
.md-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.md-chip{border:1px solid var(--line);border-radius:999px;padding:5px 12px;font-size:13px;font-weight:700;color:#324b63;text-decoration:none;background:#fff}
.md-chip.active{background:var(--blue);color:#fff;border-color:transparent}
.md-mini-form{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:0 0 14px}
.md-mini-form input[type=date]{border:1px solid var(--line);border-radius:8px;padding:6px 8px;font:inherit;font-size:13px}
details.md-new{margin:0 0 12px}
details.md-new summary{cursor:pointer;font-weight:750;color:var(--blue)}
details.md-new .md-form{margin-top:12px}
.md-meta{display:block;font-size:12px;color:var(--muted);margin-top:2px}
.md-col-h{display:flex;align-items:center;justify-content:space-between;margin:0 0 8px}
.md-col-h form{display:inline}
.md-col-h button{border:0;background:none;color:var(--muted);font:inherit;font-size:12px;font-weight:700;cursor:pointer;text-decoration:underline}
@media(max-width:900px){.md-combined{grid-template-columns:1fr}}

/* Reminder banner (Sept 22 prompt, Part 12) */
.md-reminder-banner{max-width:1100px;margin:14px auto 0;background:#fffbe8;border:1px solid #e8d48a;border-radius:12px;padding:10px 14px}
.md-reminder-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid #f1e6bd}
.md-reminder-row:last-child{border-bottom:0}
.md-reminder-text{flex:1;min-width:180px;font-size:14px}
.md-reminder-when{color:var(--muted);font-size:12px}
.md-snooze select,.md-snooze input{border:1px solid var(--line);border-radius:8px;padding:6px 8px;font:inherit;font-size:13px}
@media(max-width:900px){.md-reminder-row{flex-direction:column;align-items:stretch}}
/* Per-row remind control on Tasks & Appointments */
details.md-remind{display:inline-block}
details.md-remind summary{cursor:pointer;font-size:12px;font-weight:700;color:var(--blue)}
details.md-remind .md-form{margin-top:8px;min-width:230px;text-align:left}
details.md-remind select,details.md-remind input{font-size:13px}

/* Internal calendar (Sept 22 prompt, Part 15) */
.md-cal{width:100%;border-collapse:collapse;table-layout:fixed}
.md-cal th{font-size:11px;font-weight:700;color:var(--muted);border-bottom:1px solid var(--line);padding:6px 2px}
.md-cal-cell{vertical-align:top;border:1px solid var(--line);padding:4px;height:86px;font-size:12px}
.md-cal-cell.out{opacity:.45}
.md-cal-cell.today{background:#eef4ff}
.md-cal-num{float:right;font-weight:700;text-decoration:none;color:inherit;padding:1px 5px;border-radius:6px}
.md-cal-cell.today .md-cal-num{background:var(--blue);color:#fff}
.md-cal-appt{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:var(--blue);color:#fff;border-radius:6px;padding:1px 5px;margin:2px 0;text-decoration:none;font-size:11px}
.md-cal-appt:hover{opacity:.9}
.md-cal-more,.md-cal-tasks{display:block;color:var(--muted);font-size:10px}
.md-cal-week td{height:auto}
.md-chip-title{cursor:default;font-weight:700}
@media(max-width:900px){.md-cal{min-width:640px}.md-cal-wrap{overflow-x:auto}}


/* Sept 22 prompt, Part 22: clean printing of filtered views. */
@media print {
  header.md-topbar, nav.md-nav, .md-wsbar, form.md-form, details, .md-flash, .md-sub a, .md-btn, .md-searchbar form {
    display: none !important;
  }
  body { background: #fff; color: #000; }
  .md-main { padding: 0; }
  .md-list li, .md-table td, .md-table th {
    border-bottom: 1px solid #999; page-break-inside: avoid;
  }
  .md-h1, .md-h2 { page-break-after: avoid; }
  .md-sub { color: #333; }
  .md-print-title { display: block; }
}
.md-print-title { display: none; }

/* ============ 2026-09-28 controlled enhancement: visual refresh ============
   Restrained refresh: soft neutral background, rounded cards, gentle shadows,
   workspace accent colors, and mobile-safe spacing. MorrisDesk blue stays
   the principal action color; green is success, purple and the other accents
   are workspace identifiers only. */
body.md-app{background:#f6f8fb}
.md-topbar{background:#fff;border-bottom:1px solid #e4e9f0;box-shadow:0 1px 3px rgba(15,23,42,.06)}
.md-nav a{border-radius:6px;padding:6px 10px}
.md-nav a.active{background:#eaf1fe;color:var(--blue);border-bottom:2px solid var(--blue)}
.md-panel,.md-stat{border-radius:12px;box-shadow:0 1px 4px rgba(15,23,42,.07);border:1px solid #e8edf3}
.md-stat label{color:#5b6472}
.md-stat strong{color:#17263b}
.md-h1{color:#17263b}
.md-h2{color:#1d2b3f}
.md-flash.ok{background:#e9f7ee;border:1px solid #bfe5cd;color:#14532d}
.md-flash.err{background:#fdecec;border:1px solid #f2c4c4;color:#7f1d1d}
.md-chip{border-radius:999px;border:1px solid #d8e0ea}
.md-chip.active{background:var(--blue);border-color:var(--blue);color:#fff}
.md-btn{border-radius:8px}
.md-btn.primary{box-shadow:0 1px 3px rgba(37,99,235,.25)}
.md-tag{border-radius:999px;background:#eef1f6;color:#41506b}
.md-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px;vertical-align:middle}
.md-dot-lg{width:18px;height:18px;margin-right:0}
.md-wsc-blue{background:#2563eb}.md-wsc-green{background:#16a34a}.md-wsc-purple{background:#7c3aed}
.md-wsc-orange{background:#ea580c}.md-wsc-teal{background:#0d9488}.md-wsc-pink{background:#db2777}
.md-wsc-slate{background:#475569}.md-wsc-amber{background:#d97706}
.md-ws-row{display:inline-flex;align-items:center}
.md-ws-new{display:block;padding:8px 10px;font-weight:700;color:var(--blue);text-decoration:none;border-top:1px solid #e8edf3;margin-top:4px}
.md-ws-logo{border-radius:6px}
.md-ws-logo-lg{height:48px;max-width:96px;object-fit:contain;border-radius:8px}
.md-ws-logo-default{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:8px;background:#eef1f6}
.md-ws-preview{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.md-ws-preview-name .md-tag{margin-left:0}
.md-color-pick{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}
.md-color-opt input{display:none}
.md-color-opt .md-dot-lg{cursor:pointer;border:2px solid #e8edf3;box-sizing:content-box}
.md-color-opt input:checked + .md-dot-lg{border:2px solid #17263b}
.md-powered{font-size:11px;color:#8a94a6;margin-left:8px}
.md-cal-appt .md-dot{width:7px;height:7px;margin-right:3px}
.md-inline-form{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap}
@media(max-width:900px){.md-ws-preview{flex-wrap:wrap}.md-color-opt .md-dot-lg{width:24px;height:24px}}
