:root{color-scheme:light;--bg: #f4f1ea;--surface: #fffcf5;--surface-strong: #ffffff;--ink: #1d2522;--muted: #6e756f;--line: #ded8ca;--green: #1f7a5a;--green-dark: #14503d;--amber: #b76d12;--blue: #2f5f8f;--red: #a64036;--shadow: 0 20px 60px rgba(39, 45, 39, .1);font-family:Aptos,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}button{cursor:pointer}a.primary-button{text-decoration:none}.loading-screen{display:grid;min-height:100vh;place-items:center;color:var(--muted)}.login-page{align-items:center;background:linear-gradient(120deg,rgba(31,122,90,.2),transparent 42%),radial-gradient(circle at 80% 20%,rgba(183,109,18,.22),transparent 30%),var(--bg);display:grid;min-height:100vh;padding:24px}.login-panel{background:#fffcf5eb;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);margin:auto;max-width:460px;padding:36px;width:100%}.login-brand{align-items:center;color:var(--green-dark);display:flex;font-weight:800;gap:10px;text-transform:uppercase}.login-panel h1{font-size:42px;line-height:1;margin:32px 0 12px}.login-panel p{color:var(--muted);line-height:1.6;margin:0 0 28px}.login-form{display:grid;gap:16px}.login-form label{color:var(--muted);display:grid;gap:8px;font-size:14px;font-weight:700}.login-form input,.search-box input{background:var(--surface-strong);border:1px solid var(--line);border-radius:6px;color:var(--ink);outline:none;padding:12px 14px}.login-form button,.primary-button,.ghost-button{align-items:center;border:0;border-radius:6px;display:inline-flex;font-weight:800;gap:8px;justify-content:center;min-height:42px;padding:0 16px}.login-form button,.primary-button{background:var(--green);color:#fff}.ghost-button{background:var(--surface);border:1px solid var(--line);color:var(--ink)}.danger-button{align-items:center;background:#a640361f;border:1px solid rgba(166,64,54,.28);border-radius:6px;color:var(--red);display:inline-flex;font-weight:800;gap:8px;min-height:42px;padding:0 16px}.form-error{background:#a640361f;border:1px solid rgba(166,64,54,.25);border-radius:6px;color:var(--red);padding:10px 12px}.toast{border-radius:8px;box-shadow:var(--shadow);color:#fff;font-weight:800;padding:12px 14px;position:fixed;right:24px;top:86px;z-index:80}.toast.success{background:var(--green)}.toast.error{background:var(--red)}.loading-panel{align-items:center;display:flex;gap:10px}.spinner{animation:spin .8s linear infinite;border:3px solid rgba(31,122,90,.16);border-radius:999px;border-top-color:var(--green);display:inline-block;height:18px;width:18px}@keyframes spin{to{transform:rotate(360deg)}}.shell{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:100vh}.sidebar{background:#202822;color:#f7f3e9;display:flex;flex-direction:column;gap:28px;padding:22px}.brand{align-items:center;display:flex;gap:12px}.brand-mark{background:#d7f2c6;border-radius:6px;color:#202822;display:grid;font-weight:900;height:38px;place-items:center;width:38px}.brand small{color:#aab7ad;display:block;margin-top:2px}.nav-list{display:grid;gap:8px}.nav-list a{align-items:center;border-radius:6px;color:#dce4dc;display:flex;gap:10px;padding:12px;text-decoration:none}.nav-list a.active,.nav-list a:hover{background:#314137;color:#fff}.sidebar-logout{margin-top:auto}.workspace{display:grid;grid-template-rows:auto 1fr;min-width:0}.topbar{align-items:center;background:#f4f1eae0;border-bottom:1px solid var(--line);display:flex;gap:16px;justify-content:space-between;padding:18px 28px;position:sticky;top:0;z-index:10}.global-search{max-width:520px;position:relative;width:100%}.search-box{align-items:center;background:#fff;border:1px solid var(--line);border-radius:8px;display:flex;gap:10px;padding:0 10px;width:100%}.search-box input{border:0;box-shadow:none;min-height:42px;padding:0;width:100%}.search-box input:focus{box-shadow:none}.search-clear{height:30px;min-height:30px;width:30px}.search-results{background:var(--surface-strong);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);display:grid;gap:4px;left:0;padding:8px;position:absolute;right:0;top:calc(100% + 8px);z-index:30}.search-group{display:grid;gap:4px}.search-group+.search-group{border-top:1px solid var(--line);padding-top:8px}.search-results button{align-items:center;background:transparent;border:0;border-radius:6px;color:var(--ink);display:flex;gap:2px;justify-content:space-between;padding:10px;text-align:left;width:100%}.search-results button:hover{background:#f4efe3}.search-results span{color:var(--muted);font-size:12px;text-transform:uppercase}.search-results strong,.search-results small{display:block}.search-results small{color:var(--muted);line-height:1.4}.search-results em{background:#e8f0e5;border-radius:999px;color:var(--green);flex:0 0 auto;font-size:11px;font-style:normal;font-weight:800;padding:4px 8px}.search-state{color:var(--muted);padding:12px}.topbar-context{align-items:flex-end;display:grid;gap:2px;justify-items:end}.user-chip{align-items:flex-end;display:grid;white-space:nowrap}.user-chip span{font-weight:800}.user-chip strong{color:var(--green);font-size:12px;text-transform:uppercase}.page-stack{display:grid;gap:22px;padding:28px}.page-heading{align-items:center;display:flex;gap:16px;justify-content:space-between}.eyebrow{color:var(--green);font-size:12px;font-weight:900;letter-spacing:0;text-transform:uppercase}.page-heading h1{font-size:34px;line-height:1.1;margin:6px 0 0}.toolbar{display:flex;gap:10px}.metric-grid{display:grid;gap:14px;grid-template-columns:repeat(4,minmax(0,1fr))}.metric-card,.panel,.table-panel,.task-item{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 34px #272d270f}.metric-card{display:grid;gap:12px;padding:18px}.metric-card span,.panel-heading span,.activity-list span,.task-item span{color:var(--muted)}.metric-card strong{font-size:30px}.metric-icon{border-radius:6px;display:grid;height:38px;place-items:center;width:38px}.metric-icon.green{background:#1f7a5a24;color:var(--green)}.metric-icon.amber{background:#b76d1224;color:var(--amber)}.metric-icon.blue{background:#2f5f8f24;color:var(--blue)}.metric-icon.red{background:#a6403624;color:var(--red)}.dashboard-grid{display:grid;gap:18px;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr)}.step-one-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.panel{padding:20px}.panel-heading{align-items:baseline;display:flex;justify-content:space-between;margin-bottom:18px}.panel-heading h2{margin:0}.pipeline,.activity-list,.task-list{display:grid;gap:12px}.pipeline-row{align-items:center;display:grid;gap:12px;grid-template-columns:150px minmax(0,1fr) 40px}.pipeline-track{background:#ebe5d8;border-radius:999px;height:10px;overflow:hidden}.pipeline-track div{background:var(--green);height:100%}.activity-list div{border-top:1px solid var(--line);display:grid;gap:4px;padding-top:12px}.dashboard-mini-grid{display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:14px}.kpi-mini{background:#f7f3e9;border:1px solid var(--line);border-radius:8px;display:grid;gap:4px;padding:12px}.kpi-mini span,.subsection-title,.recent-row span,.dashboard-list-row span{color:var(--muted);font-size:13px}.kpi-mini strong{font-size:22px}.dashboard-list{display:grid;gap:10px}.dashboard-list-row,.recent-row{align-items:center;background:#f7f3e9;border:1px solid var(--line);border-radius:8px;color:var(--ink);display:flex;gap:12px;min-width:0;padding:12px;text-decoration:none}.dashboard-list-row:hover,.recent-row:hover{background:#f4efe3}.dashboard-list-row svg{color:var(--green);flex:0 0 auto}.dashboard-list-row strong,.dashboard-list-row span,.recent-row strong,.recent-row span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.subsection-title{font-weight:900;margin:16px 0 10px;text-transform:uppercase}.recent-grid{display:grid;gap:14px;grid-template-columns:repeat(4,minmax(0,1fr))}.recent-column{display:grid;gap:10px;min-width:0}.recent-column h3{align-items:center;display:flex;font-size:15px;gap:8px;margin:0}.recent-column h3 svg{color:var(--green)}.recent-row{align-items:flex-start;display:grid}.details-list{display:grid;gap:12px}.details-list div,.tenant-card{align-items:center;background:#f7f3e9;border:1px solid var(--line);border-radius:8px;display:flex;gap:12px;justify-content:space-between;padding:14px}.details-list span,.tenant-card span{color:var(--muted);display:block}.tenant-card{justify-content:flex-start}.tenant-card svg{color:var(--green);flex:0 0 auto}.customer-form{display:grid;gap:14px;grid-template-columns:repeat(3,minmax(0,1fr))}.customer-form label{color:var(--muted);display:grid;gap:8px;font-size:14px;font-weight:800}.customer-form input,.customer-form select,.customer-form textarea{background:var(--surface-strong);border:1px solid var(--line);border-radius:6px;color:var(--ink);min-height:42px;outline:none;padding:10px 12px;width:100%}.customer-form textarea{min-height:88px;resize:vertical}.wide-field{grid-column:span 2}.table-panel{overflow:hidden}.table-row{align-items:center;border-top:1px solid var(--line);display:grid;gap:12px;grid-template-columns:1.2fr 1fr 1.4fr 1.1fr 160px;min-height:58px;padding:0 18px}.table-link{color:var(--green-dark);font-weight:900;text-decoration:none}.table-link:hover{text-decoration:underline}.table-head{background:#ece6d8;border-top:0;color:var(--muted);font-size:12px;font-weight:900;text-transform:uppercase}.empty-row{color:var(--muted);padding:22px}.status-pill{background:#1f7a5a1f;border-radius:999px;color:var(--green-dark);font-size:13px;font-weight:800;padding:7px 10px;text-align:center}.calendar-board{display:grid;gap:12px;grid-template-columns:repeat(5,minmax(0,1fr));min-height:360px}.day-column{background:#f7f3e9;border:1px dashed var(--line);border-radius:8px;display:grid;gap:10px;grid-auto-rows:max-content;padding:14px}.day-column span{background:#fff;border:1px solid var(--line);border-radius:6px;padding:10px}.task-item{align-items:center;display:flex;gap:14px;padding:16px}.task-item div{display:grid;gap:4px}.task-summary-grid{display:grid;gap:14px;grid-template-columns:repeat(3,minmax(0,1fr))}.tasks-workspace{align-items:start;display:grid;gap:18px;grid-template-columns:minmax(0,1fr)}.task-editor-form,.task-filter-grid{display:grid;gap:14px}.task-editor-form{grid-template-columns:repeat(2,minmax(0,1fr))}.task-filter-grid{grid-template-columns:1fr}.task-editor-form label,.task-filter-grid label{color:var(--muted);display:grid;gap:8px;font-size:14px;font-weight:800}.task-editor-form input,.task-editor-form select,.task-editor-form textarea,.task-filter-grid select,.task-filter-grid input{background:var(--surface-strong);border:1px solid var(--line);border-radius:6px;color:var(--ink);min-height:42px;outline:none;padding:10px 12px;width:100%}.task-editor-form textarea{min-height:90px;resize:vertical}.form-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.task-board{display:grid;gap:12px}.task-card{align-items:stretch;background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 34px #272d270f;display:grid;gap:18px;grid-template-columns:minmax(0,1fr) 220px;padding:18px}.task-card.is-overdue{border-color:#a640366b}.task-card.is-today{border-color:#b76d126b}.task-badge-row{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.task-card-main h2{font-size:20px;margin:10px 0 8px}.task-card-main p{color:var(--muted);line-height:1.5;margin:0}.task-card-meta{color:var(--muted);display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.task-card-side{align-items:flex-end;display:flex;flex-direction:column;gap:14px;justify-content:space-between}.task-status,.linked-customer,.standalone-task{border-radius:999px;display:inline-flex;font-size:13px;font-weight:900;padding:7px 10px}.task-status.open{background:#2f5f8f24;color:var(--blue)}.task-status.done{background:#1f7a5a24;color:var(--green-dark)}.task-status.cancelled{background:#a640361f;color:var(--red)}.linked-customer{background:#1f7a5a1f;color:var(--green-dark);text-decoration:none}.standalone-task{background:#f7f3e9;color:var(--muted)}.task-date-badge{border-radius:999px;display:inline-flex;font-size:12px;font-weight:900;padding:6px 9px}.task-date-badge.overdue{background:#a640361f;color:var(--red)}.task-date-badge.today{background:#b76d1224;color:var(--amber)}.task-card-actions{display:flex;gap:8px}.icon-action{align-items:center;background:#f7f3e9;border:1px solid var(--line);border-radius:6px;color:var(--ink);display:inline-flex;height:38px;justify-content:center;width:38px}.icon-action.danger{color:var(--red)}.calendar-controls{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.calendar-controls select,.calendar-form input,.calendar-form select,.calendar-form textarea,.calendar-filter-grid select{background:var(--surface-strong);border:1px solid var(--line);border-radius:6px;color:var(--ink);min-height:42px;outline:none;padding:10px 12px}.calendar-layout{align-items:start;display:grid;gap:18px;grid-template-columns:minmax(0,1fr)}.calendar-form{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-form label,.calendar-filter-grid label{color:var(--muted);display:grid;gap:8px;font-size:14px;font-weight:800}.calendar-form textarea{min-height:86px;resize:vertical}.calendar-filter-grid{display:grid;gap:14px}.calendar-grid{display:grid;gap:10px}.calendar-grid.month,.calendar-grid.week{grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-grid.day{grid-template-columns:1fr}.calendar-day{background:var(--surface);border:1px solid var(--line);border-radius:8px;cursor:pointer;min-height:160px;padding:10px}.calendar-day.today{border-color:var(--green);box-shadow:inset 0 0 0 1px #1f7a5a2e}.calendar-grid.day .calendar-day{min-height:460px}.day-create{align-items:center;background:transparent;border:0;color:var(--ink);display:flex;font-weight:900;justify-content:space-between;padding:0 0 8px;width:100%}.calendar-item-list{display:grid;gap:7px}.calendar-item{background:#f7f3e9;border-left:4px solid var(--green);border-radius:6px;display:grid;gap:6px;padding:8px}.calendar-item.task{background:#fff7e7;border-left-style:dashed}.calendar-item.done{background:#edf5ec;opacity:.78}.calendar-item.cancelled{background:#f7ece9;opacity:.72;text-decoration:line-through}.calendar-item.is-overdue{box-shadow:inset 0 0 0 1px #a6403647}.calendar-item button{background:transparent;border:0;color:var(--ink);display:grid;gap:3px;padding:0;text-align:left}.calendar-item strong{font-size:13px}.calendar-item span,.calendar-item em,.calendar-item small{color:var(--muted);font-size:12px;font-style:normal}.calendar-item small{color:var(--red);font-weight:900}.calendar-item a{color:var(--green-dark);font-size:12px;font-weight:900;text-decoration:none}.calendar-item-actions{display:flex;gap:6px}.calendar-item-actions button{align-items:center;border:1px solid var(--line);border-radius:6px;display:inline-flex;height:28px;justify-content:center;width:28px}.modal-backdrop{align-items:center;background:#20282275;display:flex;top:0;right:0;bottom:0;left:0;justify-content:center;padding:18px;position:fixed;z-index:70}.modal-panel{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);max-height:calc(100vh - 36px);max-width:760px;overflow:auto;padding:20px;width:min(760px,100%)}.modal-heading{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:18px}.modal-heading h2{margin:0}.modal-heading span{color:var(--muted);display:block;margin-top:4px}.modal-form{grid-template-columns:repeat(2,minmax(0,1fr))}.customer-hero{align-items:flex-end;background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 34px #272d270f;display:flex;gap:18px;justify-content:space-between;padding:22px}.back-link{align-items:center;color:var(--green-dark);display:inline-flex;font-weight:800;gap:6px;margin-bottom:14px;text-decoration:none}.customer-hero h1{font-size:36px;line-height:1.05;margin:6px 0 12px}.customer-meta{color:var(--muted);display:flex;flex-wrap:wrap;gap:10px}.customer-meta span{background:#f7f3e9;border:1px solid var(--line);border-radius:999px;padding:7px 10px}.hero-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.customer-detail-grid{align-items:start;display:grid;gap:18px;grid-template-columns:minmax(0,1.25fr) minmax(340px,.75fr)}.lower-grid{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr)}.detail-main,.detail-side{min-width:0}.detail-side{display:grid;gap:18px}.detail-form{grid-template-columns:repeat(2,minmax(0,1fr))}.stack-form,.note-form,.note-list,.timeline-list{display:grid;gap:12px}.stack-form input,.stack-form select,.stack-form textarea,.note-form textarea{background:var(--surface-strong);border:1px solid var(--line);border-radius:6px;color:var(--ink);min-height:42px;outline:none;padding:10px 12px;width:100%}.stack-form textarea,.note-form textarea{min-height:92px;resize:vertical}.compact-list{gap:10px}.compact-list .task-item{box-shadow:none;display:grid;grid-template-columns:24px minmax(0,1fr) 110px}.compact-list .task-item select{background:#f7f3e9;border:1px solid var(--line);border-radius:6px;min-height:36px;padding:6px 8px}.note-item{background:#f7f3e9;border:1px solid var(--line);border-radius:8px;padding:14px}.note-item p{line-height:1.55;margin:0 0 10px}.note-item span,.timeline-item span{color:var(--muted);font-size:13px}.timeline-list{position:relative}.timeline-item{display:grid;gap:12px;grid-template-columns:14px minmax(0,1fr)}.timeline-dot{background:var(--green);border-radius:999px;height:10px;margin-top:6px;width:10px}.timeline-item strong{display:block;margin-bottom:4px}.timeline-item p{color:var(--muted);line-height:1.45;margin:0 0 5px}.attachments-panel{align-self:stretch}.upload-zone{align-items:center;background:#f7f3e9;border:1px dashed #b9ad95;border-radius:8px;cursor:pointer;display:grid;gap:6px;justify-items:center;margin-bottom:14px;padding:22px;text-align:center}.upload-zone.active{background:#eef4ea;border-color:var(--green)}.upload-zone span{color:var(--muted);font-size:13px}.upload-zone input{display:none}.attachment-list{display:grid;gap:10px}.attachment-item{align-items:center;background:#fff;border:1px solid var(--line);border-radius:8px;display:grid;gap:12px;grid-template-columns:54px minmax(0,1fr) auto;padding:10px}.attachment-item img,.attachment-icon{align-items:center;aspect-ratio:1;background:#f4efe3;border-radius:6px;display:flex;justify-content:center;object-fit:cover;width:54px}.attachment-item strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-item span{color:var(--muted);font-size:13px}.attachment-actions{align-items:center;display:flex;gap:6px}@media (max-width: 980px){.shell{grid-template-columns:1fr}.sidebar{bottom:0;display:grid;grid-template-columns:1fr;padding:12px;position:sticky;z-index:20}.brand,.sidebar-logout{display:none}.nav-list{display:grid;grid-template-columns:repeat(4,1fr)}.nav-list a{justify-content:center}.nav-list span{display:none}.workspace{grid-row:1}.metric-grid,.dashboard-grid,.recent-grid,.step-one-grid,.customer-detail-grid,.lower-grid,.tasks-workspace,.calendar-layout,.calendar-board,.customer-form,.detail-form,.task-editor-form,.calendar-form,.task-summary-grid{grid-template-columns:1fr}.wide-field{grid-column:auto}.table-panel{overflow-x:auto}.table-row{grid-template-columns:220px 160px 260px 210px 170px;width:1020px}.customer-hero{align-items:stretch;flex-direction:column}.task-card,.calendar-grid.month,.calendar-grid.week{grid-template-columns:1fr}.task-card-side{align-items:flex-start}.hero-actions{justify-content:flex-start}}@media (max-width: 640px){.topbar{align-items:stretch;flex-direction:column;padding:14px}.page-stack{padding:18px 14px 92px}.page-heading{align-items:stretch;flex-direction:column}.toolbar{display:grid;grid-template-columns:1fr 1fr}.page-heading h1,.login-panel h1{font-size:30px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-mini-grid,.recent-grid{grid-template-columns:1fr}.compact-list .task-item{grid-template-columns:24px minmax(0,1fr)}.compact-list .task-item select{grid-column:1 / -1}.pipeline-row{grid-template-columns:1fr 44px}.pipeline-track{grid-column:1 / -1;grid-row:2}.modal-form,.calendar-form,.task-editor-form{grid-template-columns:1fr}.modal-panel{padding:16px}.toast{left:14px;right:14px;top:74px}}
