:root{--ink: #172126;--muted: #667379;--line: #dce2e3;--paper: #fbfcfb;--panel: #f1f4f3;--green: #165f4a;--green-dark: #12231f;--green-soft: #dcece6;--amber: #db7c2f;--blue: #397ba8;--red: #bd4c3c}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif}button,input,textarea,select{color:inherit;font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.app-shell{min-height:100vh;display:grid;grid-template-columns:226px minmax(0,1fr)}.sidebar{position:sticky;top:0;z-index:4;height:100vh;padding:30px 20px 22px;background:var(--green-dark);color:#eef5f2;display:flex;flex-direction:column}.brand{width:100%;border:0;padding:0;color:inherit;background:transparent;display:flex;align-items:center;gap:11px;text-decoration:none;text-align:left;font-size:19px;font-weight:750}.brand-mark{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:#f5b76d;color:#14241f;font:700 20px/1 Georgia,serif;box-shadow:inset 0 0 0 1px #ffffff35}.nav-list{display:grid;gap:6px;margin-top:44px}.nav-item{width:100%;border:0;padding:11px 12px;border-radius:8px;color:#adc1ba;background:transparent;text-decoration:none;display:flex;align-items:center;gap:10px;text-align:left;font-size:14px}.nav-item:hover{color:#fff;background:#1b342d}.nav-item.active{color:#fff;background:#244038;box-shadow:inset 0 0 0 1px #ffffff08}.nav-icon{width:18px;color:#d2e2dc;text-align:center}.sidebar-note{margin-top:auto;display:flex;gap:9px;padding:13px 10px;border-radius:9px;background:#192e28;color:#93aaa2;font-size:11px;line-height:1.45}.sidebar-note p{margin:0}.sidebar-note strong{color:#dbe7e3;font-weight:650}.lock-dot{color:#73b9a2;font-size:8px;padding-top:3px}.sidebar-footer{margin-top:14px;padding-top:18px;border-top:1px solid #2c433c;display:flex;gap:10px;align-items:center;font-size:13px}.sidebar-footer small{display:block;margin-top:2px;color:#8ca29a}.avatar,.mini-avatar{border-radius:50%;display:grid;place-items:center;background:#f5b76d;color:#24332e;font-weight:750;flex:0 0 auto}.avatar{width:34px;height:34px;font-size:11px}.mini-avatar{width:25px;height:25px;font-size:8px}.sign-out{color:#8ca29a;margin-left:auto;padding:6px;text-decoration:none}.workspace{min-width:0;padding:36px clamp(24px,4vw,62px) 60px}.topbar{display:flex;align-items:end;justify-content:space-between;gap:20px}.eyebrow{margin:0 0 7px;color:var(--green);font-size:10px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}h1{margin:0;font:700 clamp(30px,4vw,44px)/1.05 Georgia,serif;letter-spacing:-.028em}.primary-button{border:0;border-radius:9px;padding:11px 16px;background:var(--green);color:#fff;font-weight:700;box-shadow:0 3px 8px #12372b22}.primary-button:hover{background:#104d3c}.primary-button:disabled{opacity:.6;cursor:wait}.primary-button span{margin-right:6px}.access-badge{border:1px solid #b8cbc4;border-radius:999px;padding:8px 12px;background:var(--green-soft);color:var(--green);font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.board-toolbar{min-height:69px;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:24px;border-bottom:1px solid var(--line);color:var(--muted);font-size:12px}.toolbar-right{display:flex;align-items:center;gap:16px}.toolbar-right p{margin:0;min-width:48px;text-align:right}.toolbar-right strong{color:var(--ink)}.search-box{width:min(290px,42vw);height:38px;display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:9px;padding:0 11px;background:#fff;color:#8a969a}.search-box:focus-within{border-color:#76a897;box-shadow:0 0 0 3px #1b6a5015}.search-box input{min-width:0;width:100%;border:0;outline:0;background:transparent;font-size:13px}.view-switcher{display:none}.filter-select select{height:38px;border:1px solid var(--line);border-radius:9px;padding:0 30px 0 11px;background:#fff;font-size:12px}.error-banner{margin:14px 0 -4px;border:1px solid #ecc5bf;border-radius:9px;padding:10px 12px;display:flex;justify-content:space-between;background:#fff0ed;color:#92372b;font-size:12px}.error-banner button{border:0;background:transparent;color:inherit;font-size:18px}.board{display:grid;grid-template-columns:repeat(8,minmax(245px,1fr));gap:16px;padding:20px 0 12px;overflow-x:auto;scroll-snap-type:x proximity}.column{border-radius:12px;background:var(--panel);min-height:calc(100vh - 196px);padding:14px;transition:background .18s}.column-header{display:flex;justify-content:space-between;align-items:center;padding:2px 3px 13px;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.055em;text-transform:uppercase}.column-header div{display:flex;align-items:center;gap:7px}.status-dot{width:7px;height:7px;border-radius:50%;background:#84918d}.column:nth-child(2) .status-dot{background:var(--amber)}.column:nth-child(3) .status-dot{background:#9a6aaa}.column:nth-child(4) .status-dot{background:#527cba}.column:nth-child(5) .status-dot{background:var(--blue)}.column:nth-child(6) .status-dot{background:#6d6aae}.column:nth-child(7) .status-dot{background:#b07442}.column:nth-child(8) .status-dot{background:var(--green)}.column-count{min-width:22px;height:22px;display:grid;place-items:center;border-radius:6px;background:#e3e8e6;font-size:10px}.task-list{display:grid;align-content:start;gap:10px}.task-card{position:relative;border:1px solid #e0e5e3;border-radius:10px;background:#fff;box-shadow:0 1px 2px #1b302510;transition:transform .16s,box-shadow .16s;overflow:hidden}.task-card:before{position:absolute;inset:0 auto 0 0;width:3px;content:"";background:#b8c1be;opacity:.85}.task-card.priority-high:before{background:var(--red)}.task-card.priority-medium:before{background:var(--amber)}.task-card:hover{transform:translateY(-1px);box-shadow:0 6px 18px #253d3312}.card-main{width:100%;border:0;padding:15px 16px 8px 18px;background:transparent;text-align:left}.card-main h2{margin:11px 0 0;font-size:14px;line-height:1.38}.job-number{margin-right:7px;color:var(--green);font-size:10px;font-weight:850;letter-spacing:.03em}.card-meta{display:flex;justify-content:space-between;align-items:center;gap:10px}.task-tag{display:inline-block;max-width:62%;overflow:hidden;text-overflow:ellipsis;padding:4px 7px;border-radius:5px;background:var(--green-soft);color:var(--green);font-size:9px;font-weight:800;letter-spacing:.055em;text-transform:uppercase;white-space:nowrap}.priority-label{display:flex;gap:5px;align-items:center;color:#879195;font-size:9px;text-transform:capitalize}.priority-label i{width:5px;height:5px;border-radius:50%;background:#b8c1be}.priority-high .priority-label i{background:var(--red)}.priority-medium .priority-label i{background:var(--amber)}.task-description{margin:7px 0 0;color:var(--muted);display:-webkit-box;overflow:hidden;font-size:11px;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}.latest-update{margin:9px 0 0;border-left:2px solid #c7d4cf;padding-left:8px;color:#74807d;display:-webkit-box;overflow:hidden;font-size:10px;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}.task-card>footer{min-height:41px;margin:0 15px 0 18px;border-top:1px solid #edf0ef;display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:10px}.card-dates{display:grid;gap:2px;padding:7px 0}.scheduled-date{color:var(--blue);font-weight:700}.due.overdue{color:var(--red);font-weight:700}.card-actions{display:flex;align-items:center;gap:4px}.card-actions button{width:25px;height:25px;border:0;border-radius:6px;background:transparent;color:#87928e}.card-actions button:hover{background:var(--panel);color:var(--ink)}.add-card{width:100%;border:1px dashed #cad2cf;border-radius:9px;padding:11px 12px;background:transparent;color:var(--muted);text-align:left;font-size:12px}.add-card:hover{border-color:#91aa9f;background:#fff8;color:var(--green)}.loading-card,.empty-column{border:1px dashed #d3dad7;border-radius:9px;padding:24px 12px;color:#919b98;text-align:center;font-size:11px}.calendar-view{padding-top:20px}.calendar-header{min-height:60px;display:flex;align-items:start;justify-content:space-between;gap:20px;margin-bottom:15px}.calendar-header h2{margin:0;font:700 24px/1.15 Georgia,serif;letter-spacing:-.015em}.calendar-header p{margin:6px 0 0;color:var(--muted);font-size:11px}.calendar-controls{display:flex;gap:6px}.calendar-controls button{min-width:36px;height:36px;border:1px solid var(--line);border-radius:8px;padding:0 11px;background:#fff;color:var(--muted);font-size:12px;font-weight:700}.calendar-controls button:hover{border-color:#afbfba;color:var(--green)}.calendar-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 3px 16px #1c382d08}.calendar-grid{min-width:840px;display:grid;grid-template-columns:repeat(7,minmax(120px,1fr))}.weekday{border-bottom:1px solid var(--line);padding:11px 12px;background:#f5f7f6;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.weekday:not(:nth-child(7)){border-right:1px solid var(--line)}.calendar-day{min-height:142px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:8px;background:#fff}.calendar-day:nth-child(7n){border-right:0}.calendar-day:nth-last-child(-n+7){border-bottom:0}.calendar-day.outside-month{background:#f7f9f8}.calendar-day>header{height:25px;display:flex;align-items:start;justify-content:space-between}.calendar-day time{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;color:#4f5d62;font-size:11px;font-weight:750}.calendar-day.outside-month time{color:#a4adaf}.calendar-day.today time{background:var(--green);color:#fff}.calendar-day>header button{width:24px;height:24px;border:0;border-radius:6px;background:transparent;color:#a0aaa7;opacity:0;transition:opacity .14s,background .14s}.calendar-day:hover>header button,.calendar-day>header button:focus-visible{opacity:1}.calendar-day>header button:hover{background:var(--green-soft);color:var(--green)}.calendar-events{display:grid;gap:5px}.calendar-event{position:relative;width:100%;border:1px solid #e1e7e4;border-radius:7px;padding:6px 7px 6px 9px;overflow:hidden;background:#fbfcfb;text-align:left;box-shadow:0 1px 2px #172b2208}.calendar-event:before{position:absolute;inset:0 auto 0 0;width:3px;content:"";background:#b8c1be}.calendar-event.priority-high:before{background:var(--red)}.calendar-event.priority-medium:before{background:var(--amber)}.calendar-event:hover{border-color:#b9c9c3;background:#fff;box-shadow:0 3px 8px #172b2212}.calendar-event .event-tag{display:inline-block;max-width:100%;margin-bottom:4px;border-radius:4px;padding:2px 4px;overflow:hidden;color:var(--green);font-size:7px;font-weight:850;letter-spacing:.05em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.calendar-event strong{display:block;overflow:hidden;font-size:10px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.calendar-event strong span{color:var(--green)}.calendar-event small{display:block;margin-top:3px;overflow:hidden;color:#7d898d;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.dialog-backdrop{position:fixed;inset:0;z-index:20;padding:20px;display:grid;place-items:center;background:#10241e94;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.task-dialog{width:min(680px,100%);max-height:calc(100vh - 40px);overflow-y:auto;border-radius:14px;background:var(--paper);box-shadow:0 24px 80px #07140f66}.task-dialog>header{padding:23px 24px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:start}.task-dialog h2{margin:0;font:700 28px/1.05 Georgia,serif}.close-button{width:34px;height:34px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--muted);font-size:20px}.task-dialog form{padding:22px 24px 24px}.task-dialog label{display:grid;gap:7px;margin-bottom:16px;color:#536066;font-size:11px;font-weight:750}.task-dialog input,.task-dialog textarea,.task-dialog select{width:100%;border:1px solid #d2d9d7;border-radius:8px;padding:10px 11px;background:#fff;outline:none;font-weight:400;font-size:13px}.task-dialog input:focus,.task-dialog textarea:focus,.task-dialog select:focus{border-color:#76a897;box-shadow:0 0 0 3px #1b6a5015}.task-dialog input:disabled,.task-dialog textarea:disabled,.task-dialog select:disabled{border-color:#e1e5e3;background:#f5f7f6;color:#46544f;opacity:1}.task-dialog textarea{resize:vertical}.title-row{display:grid;grid-template-columns:minmax(120px,.38fr) 1fr;gap:13px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 13px}.updates-section{margin:4px 0 18px;border:1px solid var(--line);border-radius:10px;padding:14px;background:#f5f7f6}.updates-heading{margin-bottom:10px;display:flex;align-items:center;justify-content:space-between}.updates-heading h3{margin:0;font-size:12px}.updates-heading span{min-width:22px;height:22px;display:grid;place-items:center;border-radius:999px;background:#e0e6e3;color:var(--muted);font-size:10px;font-weight:800}.update-entry{display:grid;grid-template-columns:1fr auto;gap:9px;align-items:end}.update-entry textarea{margin:0}.update-entry .secondary-button{min-height:42px}.update-entry .secondary-button:disabled{opacity:.5;cursor:default}.timeline{position:relative;margin-top:14px;display:grid;gap:11px}.timeline:before{position:absolute;top:7px;bottom:7px;left:4px;width:1px;background:#cfd8d4;content:""}.timeline-item{position:relative;display:grid;grid-template-columns:10px 1fr;gap:9px}.timeline-dot{position:relative;z-index:1;width:9px;height:9px;margin-top:3px;border:2px solid #f5f7f6;border-radius:50%;background:var(--green);box-shadow:0 0 0 1px #91aa9f}.timeline-item time{color:#82908b;font-size:9px;font-weight:750;text-transform:uppercase}.timeline-item p{margin:3px 0 0;color:#46544f;font-size:11px;line-height:1.45;white-space:pre-wrap}.empty-timeline{margin:0;color:#89948f;font-size:11px}.dialog-actions{display:flex;justify-content:space-between;gap:14px;padding-top:5px}.dialog-actions>div{display:flex;gap:9px}.secondary-button,.delete-button{border:1px solid var(--line);border-radius:9px;padding:10px 14px;background:#fff;font-weight:700}.delete-button{border-color:#ebc9c4;color:var(--red)}.auth-shell{min-height:100vh;padding:28px;display:grid;place-items:center;background:radial-gradient(circle at 25% 10%,#f1e3cd 0,transparent 32%),linear-gradient(145deg,#f8faf8,#e8f0ed)}.auth-panel{width:min(460px,100%);border:1px solid #d9e2df;border-radius:18px;padding:clamp(28px,6vw,46px);background:#fbfcfbed;box-shadow:0 24px 80px #122d241a;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.auth-brand{margin-bottom:42px;display:flex;align-items:center;gap:11px;color:var(--green-dark);font-size:18px;font-weight:800}.auth-panel h1{max-width:340px;font-size:clamp(34px,9vw,46px)}.auth-intro{margin:16px 0 26px;color:var(--muted);font-size:14px;line-height:1.6}.login-form{display:grid;gap:15px}.login-form label{display:grid;gap:7px;color:#536066;font-size:11px;font-weight:750}.login-form input{width:100%;height:45px;border:1px solid #ccd7d3;border-radius:9px;padding:0 12px;background:#fff;outline:0;font-size:15px;font-weight:400}.login-form input:focus{border-color:#76a897;box-shadow:0 0 0 3px #1b6a5015}.login-form .primary-button{min-height:45px;margin-top:4px}.auth-error{margin:-2px 0 0;border-radius:8px;padding:10px 11px;background:#fff0ed;color:#92372b;font-size:12px;line-height:1.4}.auth-footnote{margin:22px 0 0;color:#788682;font-size:10px;line-height:1.5}.auth-footnote span{color:#58a98d;font-size:8px;margin-right:4px}@media(min-width:761px){html,body,#root{height:100%;overflow:hidden}.app-shell{height:100%;min-height:0}.workspace{height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden}.topbar,.board-toolbar,.error-banner{flex:0 0 auto}.board{min-height:0;flex:1 1 auto;grid-auto-rows:minmax(0,1fr);overflow-y:hidden}.column{min-height:0;display:flex;flex-direction:column;overflow:hidden}.column-header{flex:0 0 auto}.task-list{min-height:0;flex:1 1 0;grid-auto-rows:max-content;overflow-y:auto;padding-right:3px;scrollbar-gutter:stable}.calendar-view{min-height:0;overflow-y:auto}}@media(max-width:760px){.auth-shell{padding:16px;align-items:start}.auth-panel{margin-top:8vh;padding:28px 24px}.auth-brand{margin-bottom:34px}.app-shell{grid-template-columns:1fr}.sidebar{position:sticky;height:62px;padding:12px 16px;flex-direction:row;align-items:center}.brand-mark{width:34px;height:34px}.nav-list,.sidebar-note{display:none}.sidebar-footer{margin:0 0 0 auto;padding:0;border:0}.sidebar-footer>span:nth-child(2),.sign-out{display:none}.workspace{padding:24px 16px 34px}.topbar{align-items:center}.topbar .primary-button{width:42px;height:42px;padding:0;font-size:0}.topbar .primary-button span{margin:0;font-size:22px}.board-toolbar{align-items:stretch;flex-direction:column;padding:18px 0}.search-box{width:100%}.view-switcher{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:9px;padding:3px;background:#edf1ef}.view-switcher button{height:32px;border:0;border-radius:6px;background:transparent;color:var(--muted);font-size:12px;font-weight:750}.view-switcher button.active{background:#fff;color:var(--green);box-shadow:0 1px 3px #142c2218}.toolbar-right{justify-content:space-between}.board{grid-template-columns:repeat(8,84vw);scroll-snap-type:x mandatory}.column{min-height:520px;scroll-snap-align:start}.calendar-view{padding-top:14px}.calendar-header{align-items:center}.calendar-header h2{font-size:21px}.calendar-day>header button{opacity:1}.title-row,.form-grid,.update-entry{grid-template-columns:1fr}.dialog-actions{align-items:stretch;flex-direction:column-reverse}.dialog-actions>div{display:grid;grid-template-columns:1fr 1fr}.delete-button{width:100%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}
