:root{color-scheme:light;--ink: #14211b;--muted: #68766f;--soft: #eef3ee;--line: #d9e2dc;--paper: #f5f7f3;--panel: #ffffff;--sage: #4f765f;--sage-dark: #12261d;--teal: #0f7f87;--rose: #af5969;--gold: #a77e2e;--blue: #496f93;--shadow: 0 14px 35px rgba(31, 45, 38, .08);--shadow-soft: 0 2px 14px rgba(31, 45, 38, .05)}*{box-sizing:border-box}body{margin:0;min-width:320px;background:linear-gradient(180deg,#edf4f0 0,#f7f8f4 320px,var(--paper) 100%);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;letter-spacing:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:0;border-color:var(--sage);box-shadow:0 0 0 4px #4f765f29}h1,h2,h3,p{margin-top:0}h1{margin-bottom:0;font-size:clamp(30px,5vw,46px);line-height:1}h2{margin-bottom:0;font-size:20px;line-height:1.2}.eyebrow{margin:0 0 5px;color:var(--teal);font-size:12px;font-weight:850;letter-spacing:0;text-transform:uppercase}label{display:grid;gap:6px;color:#43534b;font-size:13px;font-weight:750}input,select,textarea{width:100%;border:1px solid #cdd8d1;border-radius:8px;background:#fff;color:var(--ink);outline:none;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}input,select{height:42px;padding:0 12px}select[multiple]{height:auto;min-height:118px;padding:8px}textarea{min-height:96px;padding:11px 12px;resize:vertical}input::placeholder,textarea::placeholder{color:#96a39c}.primary-btn,.ghost-btn{display:inline-flex;min-height:42px;align-items:center;justify-content:center;gap:8px;border-radius:8px;padding:0 14px;font-weight:850;transition:transform .16s ease,background .16s ease,border-color .16s ease,box-shadow .16s ease}.primary-btn{border:1px solid var(--sage-dark);background:var(--sage-dark);color:#fff}.primary-btn:hover{background:#21382d;box-shadow:0 8px 18px #12261d29;transform:translateY(-1px)}.primary-btn.compact{min-height:38px}.ghost-btn{border:1px solid #cdd8d1;background:#fff;color:var(--ink)}.ghost-btn:hover{border-color:#b7c5bd;background:#f4f7f4}.ghost-btn.danger{color:#9b3f4c}.login-page{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,480px);min-height:100vh}.login-visual{min-height:100vh;padding:28px}.photo-panel{position:relative;height:100%;min-height:520px;overflow:hidden;border-radius:8px;background:linear-gradient(135deg,#12261db8,#12261d14),linear-gradient(145deg,#d6e0d6 0,#d6e0d6 28%,#f4ede2 28%,#f4ede2 54%,#b9cad1 54%,#b9cad1 76%,#819a87 76%);box-shadow:var(--shadow)}.photo-panel:before{position:absolute;top:28px;right:28px;bottom:28px;left:28px;content:"";border:1px solid rgba(255,255,255,.45);border-radius:8px}.photo-panel:after{position:absolute;right:9%;bottom:9%;width:min(320px,58%);height:1px;content:"";background:#ffffff94}.photo-mark{position:absolute;left:40px;bottom:34px;color:#fff;font-family:Georgia,serif;font-size:64px;font-weight:650}.login-panel{display:flex;flex-direction:column;justify-content:center;padding:44px;background:var(--paper)}.brand-row,.brand-lockup{display:flex;align-items:center;gap:14px}.brand-row{margin-bottom:28px}.brand-icon,.brand-monogram{display:grid;width:48px;height:48px;flex:0 0 48px;place-items:center;border-radius:8px;background:#e6eee8;color:var(--sage-dark);font-weight:900}.brand-monogram{background:var(--sage-dark);color:#fff;box-shadow:0 8px 20px #12261d29}.login-form,.filter-block,.add-task-form,.person-form,.label-form,.contact-form{display:grid;gap:14px}.form-message{min-height:20px;margin:0;color:#9d3f4d;font-size:14px}.app-shell{width:min(1360px,100%);margin:0 auto;padding:24px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px;padding:18px;border:1px solid rgba(217,226,220,.9);border-radius:8px;background:#ffffffd1;box-shadow:var(--shadow-soft)}.top-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.dashboard-grid{display:grid;grid-template-columns:minmax(320px,1.8fr) repeat(3,minmax(160px,1fr));gap:12px;margin-bottom:18px}.status-card,.metric-card,.phase-panel,.control-panel,.sidebar,.note-panel{border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:var(--shadow-soft)}.status-card{display:grid;align-content:space-between;gap:18px;min-height:158px;padding:20px;background:linear-gradient(135deg,#fffffff0,#ffffffb8),linear-gradient(135deg,#0f7f871c,#a77e2e17)}.status-card h2{margin-bottom:8px;font-size:clamp(28px,4vw,42px)}.status-card p{max-width:680px;margin-bottom:0;color:var(--muted);line-height:1.5}.status-progress{height:11px;overflow:hidden;border-radius:999px;background:#e2e9e4}.status-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--teal),var(--sage))}.metric-card{min-height:158px;padding:18px}.metric-card span{color:var(--muted);font-size:13px;font-weight:800}.metric-card strong{display:block;margin-top:10px;font-size:clamp(24px,3vw,34px);line-height:1.05}.metric-card p{margin:12px 0 0;color:var(--muted);font-size:13px;line-height:1.45}.phase-panel{margin-bottom:22px;padding:16px}.control-panel{margin-bottom:24px;padding:16px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:14px}.section-heading p,.control-heading p,.sidebar-heading p,.person-form p,.label-form p,.add-task-form p,.board-heading p{margin-bottom:0;color:var(--muted);font-size:14px;line-height:1.45}.control-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:14px}.control-heading h2{margin-bottom:5px}.sync-badge{display:inline-flex;min-height:32px;align-items:center;justify-content:center;border:1px solid #d3ded7;border-radius:999px;background:#f6f9f6;padding:0 11px;color:var(--muted);font-size:12px;font-weight:900;white-space:nowrap}.sync-badge.online{border-color:#0f7f8747;background:#0f7f8717;color:#0f6570}.sync-badge.checking{border-color:#a77e2e4d;background:#a77e2e1a;color:#765a1f}.sync-badge.error{border-color:#af59694d;background:#af596917;color:#963b4a}.filter-block{grid-template-columns:minmax(260px,1.45fr) repeat(4,minmax(120px,1fr)) auto;align-items:end;gap:10px}.filter-field{display:grid;gap:6px;min-width:0;color:#43534b;font-size:13px;font-weight:750}.filter-field label{display:block}.search-apply-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.clear-filters-btn{white-space:nowrap}.phase-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:8px}.phase-button{position:relative;min-height:74px;overflow:hidden;border:1px solid #d6dfd9;border-radius:8px;background:#f9fbf8;padding:10px;text-align:left;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,transform .16s ease}.phase-button:hover{border-color:#b9c7bf;background:#fff;transform:translateY(-1px)}.phase-button.active{border-color:var(--sage-dark);background:#f2f7f4;box-shadow:0 0 0 3px #12261d1a}.phase-button span,.phase-button strong{position:relative;z-index:1;display:block}.phase-button span{color:#35483f;font-size:13px;font-weight:850}.phase-button strong{margin-top:8px;color:var(--muted);font-size:12px}.phase-button i{position:absolute;left:0;bottom:0;height:4px;background:linear-gradient(90deg,var(--teal),var(--sage))}.planner-layout{display:grid;grid-template-columns:1fr;gap:22px;align-items:start}.sidebar{position:sticky;top:16px;display:grid;gap:18px;padding:18px}.sidebar-heading{padding-top:0;border-top:0}.sidebar-heading h2,.person-form h2,.label-form h2,.add-task-form h2,.note-panel h2{margin-bottom:5px;font-size:18px}.two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.inline-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.manage-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.control-details{overflow:hidden;border:1px solid #d7e0da;border-radius:8px;background:#fbfcfa}.control-details.wide{grid-column:1 / -1}.control-details summary{display:flex;min-height:48px;align-items:center;justify-content:space-between;gap:12px;padding:0 14px;color:var(--ink);font-weight:900;list-style:none;cursor:pointer}.control-details summary::-webkit-details-marker{display:none}.control-details summary:after{content:"+";display:grid;width:24px;height:24px;flex:0 0 24px;place-items:center;border-radius:50%;background:#e7eee8;color:var(--sage-dark);font-weight:900}.control-details[open] summary{border-bottom:1px solid var(--line)}.control-details[open] summary:after{content:"-"}.control-details small{margin-left:auto;color:var(--muted);font-size:12px;font-weight:800}.person-form,.label-form,.add-task-form{padding:14px}.add-task-form{grid-template-columns:repeat(4,minmax(0,1fr));align-items:end}.wide-field{grid-column:span 2}.add-task-form .primary-btn{align-self:end}.person-list{display:flex;flex-wrap:wrap;gap:6px}.person-chip{border:1px solid #cbd8d0;border-radius:999px;background:#f5f8f5;padding:5px 9px;color:#33493d;font-size:12px;font-weight:850}.task-board{display:grid;min-width:0;gap:16px}.board-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:2px 2px 10px;border-bottom:1px solid var(--line)}.board-heading h2{margin-bottom:5px;font-size:clamp(24px,4vw,34px)}.board-heading>span,.phase-title span{border-radius:999px;background:#e6eee8;padding:6px 11px;color:var(--sage-dark);font-size:13px;font-weight:850;white-space:nowrap}.phase-group{display:grid;gap:10px;padding-top:6px}.phase-title{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.phase-title h2{margin-bottom:4px;font-size:20px}.phase-title p{margin-bottom:0;color:var(--muted);font-size:14px;line-height:1.45}.task-list{display:grid;gap:9px}.task-card{display:grid;gap:11px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:14px;box-shadow:0 1px #1f2d2608;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.task-card:hover{border-color:#c4d0c8;box-shadow:var(--shadow-soft)}.task-card.done{background:#f6f8f5}.task-main{display:flex;gap:12px;align-items:flex-start}.check-btn{display:grid;width:30px;height:30px;flex:0 0 30px;place-items:center;border:1px solid #b6c4bb;border-radius:50%;background:#fff;color:var(--sage-dark);font-weight:950}.check-btn:hover{border-color:var(--sage-dark);background:#f1f5f1}.task-card.done .check-btn{background:var(--sage-dark);color:#fff}.task-content{flex:1;min-width:0}.task-content h3{margin:7px 0 0;font-size:16px;line-height:1.35}.task-card.done h3{color:#77847d;text-decoration:line-through}.task-delete-btn{flex:0 0 auto;border:1px solid rgba(175,89,105,.24);border-radius:999px;background:#af596914;padding:6px 9px;color:#963b4a;font-size:12px;font-weight:850}.task-delete-btn:hover{border-color:#af596973;background:#af596924}.task-meta,.label-row{display:flex;flex-wrap:wrap;gap:6px}.assignee-control{width:min(220px,100%);margin-top:8px}.assignee-control span{color:var(--muted);font-size:11px;font-weight:850;text-transform:uppercase}.assignee-control select{height:34px;border-color:#d7e0d9;background:#fbfcfa;font-size:13px;font-weight:750}.label-row{margin-top:8px}.label-remove{border:1px solid #d6dfd8;border-radius:999px;background:#fbfcfa;padding:4px 8px;color:#506259;font-size:11px;font-weight:850}.label-remove:hover{border-color:#b8c6bd;background:#eff4ef}.label-add{width:auto;max-width:190px;height:28px;border-radius:999px;padding:0 24px 0 9px;color:var(--muted);font-size:11px;font-weight:850}.pill{border-radius:999px;background:#edf2ed;padding:4px 8px;color:#42524b;font-size:12px;font-weight:850}.pill.high{background:#f7e4e7;color:#963b4a}.pill.medium{background:#f5eedb;color:#775813}.pill.low{background:#e8eef5;color:#3f5e80}.pill.muted{background:#edf2ed;color:var(--muted)}.notes-section{margin-top:28px}.contacts-section{margin-bottom:18px}.contacts-layout{display:grid;grid-template-columns:minmax(280px,420px) minmax(0,1fr);gap:14px;align-items:start}.contact-form,.contact-directory,.contact-card{border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:var(--shadow-soft)}.contact-form{grid-template-columns:repeat(2,minmax(0,1fr));padding:16px}.contact-form h3,.contact-form .primary-btn{grid-column:1 / -1}.contact-form h3{margin-bottom:0;font-size:18px}.contact-form textarea{min-height:82px}.contact-directory{display:grid;gap:12px;padding:16px}.contact-search{max-width:520px}.contact-list{display:grid;gap:10px}.contact-card{display:grid;gap:12px;padding:14px}.contact-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.contact-card-head h3{margin:8px 0 4px;font-size:18px}.contact-card-head p,.muted-copy{margin-bottom:0;color:var(--muted);font-size:13px}.status-pill{border-radius:999px;background:#e8eef5;padding:5px 9px;color:#3f5e80;font-size:12px;font-weight:850;white-space:nowrap}.contact-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0}.contact-details div{min-width:0;border-radius:8px;background:#f7f9f7;padding:9px}.contact-details dt{color:var(--muted);font-size:11px;font-weight:850;text-transform:uppercase}.contact-details dd{margin:4px 0 0;overflow-wrap:anywhere;font-size:13px;font-weight:750}.contact-notes,.task-notes{display:grid;gap:8px;border-top:1px solid var(--line);padding-top:12px}.contact-notes h4,.task-notes h4{margin:0;font-size:14px}.contact-note-list,.task-note-list{display:grid;gap:7px}.contact-note{border-left:3px solid rgba(15,127,135,.25);padding-left:9px}.contact-note span{color:var(--muted);font-size:11px;font-weight:850}.contact-note p{margin:2px 0 0;font-size:13px;line-height:1.45}.contact-note-form,.task-note-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.empty-state.compact{padding:22px}.notes-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.note-panel{padding:16px}.note-panel textarea{min-height:150px}.empty-state{border:1px dashed #c9d6ce;border-radius:8px;padding:32px;background:#ffffff9e;text-align:center}.empty-state p{margin-bottom:0;color:var(--muted)}@media(max-width:1180px){.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.status-card{grid-column:1 / -1}.planner-layout{grid-template-columns:1fr}.sidebar{position:static}.filter-block{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-block .search-field,.wide-field{grid-column:1 / -1}.add-task-form{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.contacts-layout,.contact-details,.notes-grid{grid-template-columns:1fr}}@media(max-width:760px){.login-page{grid-template-columns:1fr}.login-visual{display:none}.login-panel{min-height:100vh;padding:24px}.app-shell{padding:16px}.topbar,.section-heading,.board-heading{align-items:stretch;flex-direction:column}.brand-lockup{align-items:flex-start}.top-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.top-actions .ghost-btn,.top-actions .primary-btn{min-height:38px;padding:0 8px;font-size:12px;white-space:nowrap}.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.metric-card{min-height:126px;padding:13px}.metric-card strong{font-size:24px}.metric-card p{font-size:12px;line-height:1.35}.phase-panel,.control-panel,.sidebar,.note-panel,.topbar{padding:12px}.phase-strip{display:flex;gap:8px;margin:0 -12px;overflow-x:auto;padding:2px 12px 10px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}.phase-strip::-webkit-scrollbar{display:none}.phase-button{min-width:142px;min-height:64px;scroll-snap-align:start}.filter-block,.add-task-form,.contact-form,.manage-grid,.two-col,.inline-form{grid-template-columns:1fr}.filter-block .search-field,.control-details.wide,.wide-field{grid-column:auto}.search-apply-row{grid-template-columns:1fr}.clear-filters-btn{width:100%}.control-heading{align-items:stretch;flex-direction:column}.control-details summary{padding:0 12px}.control-details small{display:none}.phase-title{align-items:flex-start;gap:10px}.phase-title h2{font-size:18px}.phase-title p{font-size:13px}.task-card{padding:11px}.task-main{gap:10px}.task-delete-btn{padding:6px 8px}.task-content h3{font-size:15px}.label-add{width:100%;max-width:none}.contact-form .primary-btn,.contact-form h3{grid-column:auto}.contact-card-head{flex-direction:column}.contact-note-form,.task-note-form{grid-template-columns:1fr}}@media(max-width:430px){.dashboard-grid{grid-template-columns:1fr}.status-card{min-height:0}}@media(max-width:360px){.app-shell{padding:12px}.top-actions{grid-template-columns:1fr}.phase-strip{margin:0 -12px;padding-right:12px;padding-left:12px}}
