/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial}}}@layer theme{:host,:root{--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.fixed{position:fixed}.block{display:block}.hidden{display:none}.inline{display:inline}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}}:root{--ink:#171a19;--muted:#6e7470;--line:#dfe3df;--paper:#f5f6f2;--white:#fff;--lime:#d8ff45;--green:#174e31;--header-green:#132c26;--green-soft:#eef5ef;--red:#d94b45;--amber:#d68b24;--blue:#496cdc;--shadow:0 14px 40px #14201c14}*{box-sizing:border-box}body,html{background:var(--paper);min-height:100%;color:var(--ink);margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.testing-environment{--testing-banner-height:44px;padding-top:var(--testing-banner-height)}.testing-environment-banner{z-index:1000;height:var(--testing-banner-height);color:#5e3a04;background:#fff1d6;border-bottom:1px solid #e7c37d;justify-content:center;align-items:center;gap:.75rem;padding:0 1rem;font-size:.78rem;display:flex;position:fixed;inset:0 0 auto}.testing-environment-banner strong{white-space:nowrap}.testing-environment-banner a{color:#173f35;text-underline-offset:2px;white-space:nowrap;font-weight:800;text-decoration:underline}.testing-environment .app-shell,.testing-environment .login-page{min-height:calc(100vh - var(--testing-banner-height))}.testing-environment .sidebar{top:var(--testing-banner-height);height:calc(100vh - var(--testing-banner-height))}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin-top:0}.eyebrow{letter-spacing:.17em;color:#788079;margin-bottom:.65rem;font-size:.7rem;font-weight:800}.button{border:0;border-radius:10px;justify-content:center;align-items:center;padding:.72rem 1rem;font-weight:750;display:inline-flex}.button.primary{background:var(--green);color:#fff}.button.wide{width:100%}.app-shell{grid-template-columns:230px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--header-green);color:#eef5ee;flex-direction:column;height:100vh;padding:1.5rem 1.1rem;display:flex;position:sticky;top:0}.brand{align-items:center;gap:.75rem;padding:.25rem .55rem 1.8rem;display:flex}.tbal-brand-header{gap:10px;min-width:0}.tbal-brand-header>strong{color:#fff;font-size:.95rem;line-height:1.2}.tbal-brand-logo{background:#fff;border-radius:5px;flex:none;place-items:center;padding:6px 8px;display:grid}.tbal-brand-logo img{object-fit:contain;width:64px;height:32px;display:block}.sidebar a:focus-visible,.sidebar button:focus-visible{outline-offset:2px;outline:2px solid #fff}.brand-mark{background:var(--lime);color:#17342c;border-radius:8px;place-items:center;width:35px;height:35px;font-size:1.3rem;font-weight:950;display:grid}.brand-mark.large{width:52px;height:52px;font-size:1.8rem}.brand small,.brand strong{display:block}.brand small{color:#9eb3aa;margin-top:.12rem;font-size:.68rem}.sidebar nav{gap:.3rem;display:grid}.sidebar nav a{color:#c8d6cf;border-radius:9px;align-items:center;gap:.8rem;padding:.72rem .8rem;font-size:.9rem;font-weight:650;display:flex}.sidebar nav a:hover{background:var(--green);color:#fff}.sidebar nav a span{text-align:center;width:20px;color:var(--lime)}.user-card{border-top:1px solid #345149;align-items:center;gap:.65rem;margin-top:auto;padding:1rem .55rem;display:flex}.user-card small,.user-card strong{display:block}.user-card strong{font-size:.86rem}.user-card small{color:#a9bdb4;margin-top:.15rem;font-size:.7rem}.avatar{background:var(--lime);color:#17342c;border-radius:50%;flex:none;place-items:center;width:34px;height:34px;font-weight:900;display:inline-grid}.avatar.small{width:28px;height:28px;font-size:.75rem}.logout{color:#d7e7dc;text-align:left;background:0 0;border:0;padding:.35rem .55rem;font-size:.75rem}.main-content{min-width:0;padding:2.4rem 2.7rem}.page-header{justify-content:space-between;align-items:flex-start;margin-bottom:2rem;display:flex}.page-header h1{letter-spacing:-.045em;margin-bottom:.35rem;font-size:2.25rem}.page-header p:last-child{color:var(--muted);margin:0}.metrics{grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:2.25rem;display:grid}.metrics>div{border:1px solid var(--line);background:#fff;border-radius:14px;padding:1.25rem}.metrics small,.metrics span{color:var(--muted);font-size:.78rem;display:block}.metrics strong{margin:.45rem 0;font-size:2rem;display:block}.dashboard-grid{grid-template-columns:minmax(0,1.6fr) minmax(280px,.75fr);gap:2rem;display:grid}.section-title{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.section-title h2{margin:0;font-size:1.05rem}.section-title a,.section-title>span{color:var(--muted);font-size:.76rem}.task-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;display:grid}.task-card{background:#fff;border:1px solid var(--line);border-left:4px solid #aaa;border-radius:11px;min-width:0;padding:1rem}.calendar-item.priority-high,.task-card.priority-high,.task-detail.priority-high{border-left-color:var(--red)}.calendar-item.priority-medium,.task-card.priority-medium,.task-detail.priority-medium{border-left-color:var(--amber)}.calendar-item.priority-low,.task-card.priority-low,.task-detail.priority-low{border-left-color:#7c9890}.task-card-top{justify-content:space-between;align-items:center;display:flex}.project-code{letter-spacing:.06em;font-size:.7rem;font-weight:850}.task-card h3{margin:.8rem 0;font-size:.91rem;line-height:1.35}.task-meta{color:var(--muted);flex-wrap:wrap;gap:.5rem;font-size:.69rem;display:flex}.quick-status{gap:.4rem;margin-top:.85rem;display:flex}.quick-status select{width:100%;min-width:0}.quick-status button{background:#e9ece8;border:0;border-radius:7px;font-size:.68rem;font-weight:750}.pill{text-transform:uppercase;letter-spacing:.04em;color:#626862;white-space:nowrap;background:#eceeeb;border-radius:999px;padding:.25rem .4rem;font-size:.61rem;font-weight:850}.pill-blocked,.pill-high{color:#9b2925;background:#ffe1dd}.pill-medium,.pill-waiting{color:#8d590d;background:#fff0cf}.pill-low{color:#49665d;background:#e5eeeb}.pill-in-progress{color:#3454aa;background:#dfe7ff}.pill-done{color:#25613f;background:#daf0e3}.activity-list{border:1px solid var(--line);background:#fff;border-radius:14px;padding:1rem}.activity-list>div{border-left:1px solid var(--line);margin-left:.3rem;padding:0 0 1rem 1.2rem;position:relative}.activity-list>div:last-child{padding-bottom:0}.activity-dot{background:var(--lime);border:2px solid var(--green);border-radius:50%;width:8px;height:8px;position:absolute;top:.25rem;left:-4.5px}.activity-list p{margin:0 0 .25rem;font-size:.78rem;line-height:1.35}.activity-list small{color:var(--muted);font-size:.67rem}.empty{border:1px dashed var(--line);color:var(--muted);background:#fff;border-radius:12px;padding:2rem}.project-grid{--project-columns:4;grid-template-columns:repeat(var(--project-columns),minmax(0,1fr));gap:1rem;display:grid}.project-grid--large{--project-columns:3}.project-grid--medium{--project-columns:4}.project-grid--small{--project-columns:5;gap:.75rem}.project-card{--project-color:var(--lime);border:1px solid var(--line);background:#fff;border-radius:14px;padding:1.25rem;transition:all .18s;box-shadow:0 2px #0000}.project-grid--medium .project-card{padding:1rem}.project-grid--small .project-card{border-radius:12px;padding:.85rem}.project-grid--medium .project-card h2{margin-top:.9rem;font-size:.98rem}.project-grid--small .project-card h2{margin-top:.75rem;font-size:.9rem}.project-grid--small .project-card p{font-size:.72rem}.project-grid--medium .progress,.project-grid--small .progress{margin-top:.9rem}.project-grid--small .project-card footer{gap:.4rem;font-size:.62rem}.project-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.project-card-head{justify-content:space-between;font-size:.7rem;font-weight:850;display:flex}.project-card-head i{background:var(--project-color);border-radius:50%;width:10px;height:10px}.project-card h2{margin:1.2rem 0 .35rem;font-size:1.06rem}.project-card p{color:var(--muted);font-size:.78rem}.phase{background:#eef0ed;border-radius:6px;padding:.32rem .5rem;font-size:.68rem;display:inline-block}.progress{background:#e7eae6;border-radius:5px;height:5px;margin:1.25rem 0 .65rem;overflow:hidden}.progress span{background:var(--project-color);height:100%;display:block}.project-card footer{color:var(--muted);justify-content:space-between;font-size:.68rem;display:flex}.card-size-control{border:1px solid var(--line);background:#fff;border-radius:9px;align-items:center;gap:.2rem;padding:.22rem;display:flex}.card-size-control>span{padding:0 .45rem}.card-size-control a,.card-size-control>span{color:var(--muted);font-size:.68rem;font-weight:750}.card-size-control a{border-radius:6px;padding:.42rem .55rem}.card-size-control a.active,.card-size-control a:hover{color:var(--green);background:var(--lime)}.kanban{grid-template-columns:repeat(5,minmax(250px,1fr));gap:.85rem;height:calc(100vh - 235px);min-height:520px;padding-bottom:.5rem;display:grid;overflow:auto hidden}.kanban-column{background:#e9ebe7;border:2px solid #0000;border-radius:12px;flex-direction:column;min-height:0;padding:.7rem;transition:border-color .15s,background .15s;display:flex}.kanban-column.is-over{border-color:var(--lime);background:#e3e9df}.kanban-column>header{flex:none;justify-content:space-between;align-items:center;padding:.35rem .25rem .85rem;display:flex}.kanban-column>header h2{text-transform:uppercase;letter-spacing:.07em;margin:0;font-size:.78rem}.kanban-column>header span{background:#d5dad4;border-radius:999px;padding:.2rem .45rem;font-size:.72rem}.kanban-column-body{overscroll-behavior:contain;align-content:start;gap:.65rem;min-height:0;padding:0 .25rem .4rem 0;display:grid;overflow-y:auto}.kanban .task-card{padding:.8rem}.kanban .task-card h3{font-size:.82rem}.kanban .task-meta{display:grid}.kanban-help{color:var(--muted);margin:-1.2rem 0 .75rem;font-size:.7rem}.kanban-error{color:#9b2925;background:#ffe1dd;border-radius:8px;padding:.65rem .8rem;font-size:.72rem}.kanban.is-saving{cursor:progress}.kanban-drag-card{cursor:grab;position:relative}.kanban-drag-card:active{cursor:grabbing}.kanban-drag-card.is-dragging{opacity:.35}.drag-handle{z-index:1;color:#8b928c;font-size:.9rem;line-height:1;position:absolute;top:.5rem;right:.55rem}.kanban-drop-empty{color:var(--muted);text-align:center;border:1px dashed #b8c0b8;border-radius:9px;padding:1.1rem .5rem;font-size:.7rem}.timeline{max-width:960px}.timeline-day{border-top:1px solid var(--line);grid-template-columns:105px 1fr;padding:1.2rem 0;display:grid}.timeline-day time span,.timeline-day time strong{display:block}.timeline-day time strong{font-size:1.8rem}.timeline-day time span{text-transform:uppercase;color:var(--muted);font-size:.67rem}.timeline-day>div{gap:.5rem;display:grid}.calendar-item{background:#fff;border:1px solid var(--line);border-left:4px solid #aaa;border-radius:9px;grid-template-columns:90px 1fr auto;align-items:center;padding:.8rem 1rem;display:grid}.calendar-item small,.calendar-item>span{color:var(--muted);font-size:.7rem}.calendar-item strong{font-size:.83rem}.project-hero{--project-color:var(--lime);background:var(--green);color:#fff;border-top:6px solid var(--project-color);border-radius:18px;justify-content:space-between;align-items:flex-end;margin-bottom:1.4rem;padding:1.8rem 2rem;display:flex}.project-hero h1{margin-bottom:.8rem;font-size:2rem}.project-hero .eyebrow{color:#b7ccc3}.project-facts{flex-wrap:wrap;gap:.65rem;display:flex}.project-facts span{background:#2d4e45;border-radius:6px;padding:.35rem .5rem;font-size:.7rem}.project-team{display:flex}.project-team .avatar{border:2px solid var(--green);margin-left:-8px}.project-layout{grid-template-columns:minmax(0,1fr) 340px;gap:1.4rem;display:grid}.project-main{min-width:0;overflow-x:auto}.project-main,.side-card{border:1px solid var(--line);background:#fff;border-radius:14px;padding:1.25rem}.project-side{align-content:start;gap:1rem;display:grid}.side-card h2{font-size:1rem}.create-box{border:1px dashed #b9c1ba;border-radius:10px;margin-bottom:1rem}.create-box>summary{cursor:pointer;padding:.85rem 1rem;font-size:.8rem;font-weight:800}.create-box[open]>summary{border-bottom:1px solid var(--line)}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:1rem}.form-grid,.stack-form{gap:.75rem;display:grid}.form-grid label,.stack-form label{color:#5b625e;gap:.3rem;font-size:.7rem;font-weight:750;display:grid}.span-2{grid-column:span 2}.form-grid input,.form-grid select,.form-grid textarea,.login-form input,.stack-form input,.stack-form select,.stack-form textarea{color:var(--ink);background:#fff;border:1px solid #cfd5d0;border-radius:8px;width:100%;padding:.62rem}.checkbox{align-items:center;grid-template-columns:auto 1fr!important;display:flex!important}.checkbox input{width:auto}.project-task-list{gap:.55rem;display:grid}.task-detail{border:1px solid var(--line);border-left:4px solid #aaa;border-radius:9px;overflow:hidden}.task-detail>summary{cursor:pointer;align-items:center;gap:.75rem;padding:.8rem;list-style:none;display:flex}.task-detail>summary div{flex:1}.task-detail>summary small,.task-detail>summary strong{display:block}.task-detail>summary strong{font-size:.82rem}.task-detail>summary small{color:var(--muted);margin-top:.2rem;font-size:.66rem}.check-symbol{width:22px;height:22px;color:var(--green);border:1px solid #bfc6c0;border-radius:5px;place-items:center;display:grid}.task-detail-body{border-top:1px solid var(--line);background:#f7f8f5}.comments{padding:0 1rem 1rem}.comments h4{font-size:.75rem}.comments>div{border:1px solid var(--line);background:#fff;border-radius:8px;margin-bottom:.5rem;padding:.65rem}.comments>div small,.comments>div strong{font-size:.65rem}.comments>div p{margin:.3rem 0;font-size:.75rem}.comments form{gap:.4rem;display:flex}.comments input{border:1px solid var(--line);border-radius:8px;flex:1;padding:.55rem}.comments button,.people-list button,.permission-grid button{background:#e6e9e5;border:0;border-radius:7px;font-size:.68rem;font-weight:750}.member-row{align-items:center;gap:.6rem;margin:.65rem 0;display:flex}.member-row small,.member-row strong{font-size:.72rem;display:block}.member-row small{color:var(--muted)}.project-readonly{font-size:.75rem}.project-readonly dt{color:var(--muted);margin-top:.7rem}.project-readonly dd{margin:.15rem 0}.team-layout{grid-template-columns:minmax(380px,430px) minmax(0,1fr);gap:1.5rem;display:grid}.team-layout>section{border:1px solid var(--line);background:#fff;border-radius:14px;padding:1.2rem}.team-layout h2{font-size:1rem}.people-list>div{border-bottom:1px solid var(--line);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.7rem;padding:.8rem 0;display:grid}.people-list .inactive>.avatar,.people-list .inactive>div:not(.people-actions){opacity:.5}.people-list p,.people-list small,.people-list strong{margin:0;font-size:.72rem;display:block}.people-list p,.people-list small{color:var(--muted);overflow-wrap:anywhere}.people-actions{justify-content:flex-end;align-items:center;gap:.35rem;display:flex}.people-actions form{margin:0}.people-actions button{white-space:nowrap;padding:.45rem .6rem}.team-user-modal{width:min(620px,96vw)}.team-user-modal .span-2{grid-column:1/-1}.team-user-delete{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.75rem;margin-top:1rem;padding-top:1rem;display:grid}.team-user-delete p{color:var(--muted);margin:.2rem 0 0;font-size:.72rem}.team-password-reset{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.75rem;margin-top:1rem;padding-top:1rem;display:grid}.team-password-reset p{color:var(--muted);margin:.2rem 0 0;font-size:.72rem}.team-password-reset form{align-items:center;gap:.65rem;display:flex}.team-password-reset>.form-hint,.temporary-password-result{grid-column:1/-1}.temporary-password-result{background:#eef8f2;border:1px solid #b9d6c7;border-radius:10px;padding:.75rem}.temporary-password-result>div{align-items:center;gap:.6rem;margin-top:.55rem;display:flex}.temporary-password-result code{letter-spacing:.04em;-webkit-user-select:all;user-select:all;background:#fff;border-radius:7px;flex:1;padding:.6rem;font-size:.9rem;font-weight:750}.permission-grid{border:1px solid var(--line);border-radius:10px;max-height:min(65vh,620px);display:grid;overflow:auto}.permission-grid>*{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:.6rem}.permission-head{z-index:2;background:#eff1ed;font-size:.7rem;font-weight:850;position:sticky;top:0}.project-label small,.project-label strong{font-size:.68rem;display:block}.project-label small{color:var(--muted)}.permission-grid form{gap:.3rem;display:grid}.permission-hint{color:var(--muted);margin:0 0 .6rem;font-size:.7rem}.form-hint.success{color:var(--green)}.password-field{align-items:center;gap:.35rem;display:flex}.password-field input{flex:1;min-width:0}.password-toggle{cursor:pointer;background:0 0;border:0;padding:.25rem .35rem;font-size:1rem;line-height:1}.permission-grid select{border:1px solid var(--line);padding:.35rem;font-size:.68rem}.activity-table,.settings-card{border:1px solid var(--line);background:#fff;border-radius:14px}.work-calendar-settings{margin-top:1rem}.planning-status-panel{background:#f4f1e8;border-left:5px solid #d5a340;border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;padding:.9rem 1rem;display:flex}.planning-status-panel.approved{background:#eef6f0;border-left-color:#5d9270}.planning-status-panel.not-viable{background:#fbefeb;border-left-color:#c56f5d}.planning-status-panel>div{gap:.2rem;display:grid}.planning-status-panel span{color:var(--muted);font-size:.86rem}.gantt-focus-status{background:#f3f1e8;border-left:4px solid #d5a340;border-radius:10px;align-items:center;gap:.8rem;margin-bottom:.65rem;padding:.5rem .75rem;font-size:.75rem;display:flex}.gantt-focus-status.approved{background:#edf5ef;border-left-color:#5d9270}.gantt-focus-status.not-viable{background:#faeeea;border-left-color:#c56f5d}.gantt-focus-status a{margin-left:auto}.gantt-draft-label{margin-top:.15rem;font-weight:800;color:#94691e!important;display:inline-block!important}.planning-viability .warning{color:#9a4f3f;font-weight:700}.planning-status-action{flex-wrap:wrap;align-items:center;gap:.7rem;display:flex}.backward-preview-viability{background:#edf5ef;border-left:4px solid #5d9270;border-radius:10px;gap:.2rem;margin:.8rem 0;padding:.7rem .85rem;display:grid}.backward-preview-viability.is-not-viable{background:#fbefeb;border-left-color:#c56f5d}.backward-preview-viability span{color:var(--muted);font-size:.84rem}.work-calendar-form{grid-template-columns:minmax(12rem,2fr) repeat(3,minmax(9rem,1fr)) auto;align-items:end;gap:.7rem;display:grid}.work-calendar-form label{color:var(--muted);gap:.3rem;font-size:.78rem;display:grid}.work-calendar-form input,.work-calendar-form select{width:100%}.work-calendar-list{gap:.6rem;margin-top:1rem;display:grid}.work-calendar-row{background:#faf5f1;border-left:4px solid #d88b70;border-radius:10px;align-items:end;gap:.7rem;padding:.7rem;display:flex}.work-calendar-row.working{background:#f1f7f2;border-left-color:#6b9b78}.work-calendar-row>form:first-child{flex:1}.work-calendar-row>strong{min-width:14rem}.work-calendar-row>span{color:var(--muted)}.month-day.non-working-day,.week-day.non-working-day{background:linear-gradient(135deg,#bd705b1a,#bd705b0a)}.month-day.exception-working-day,.week-day.exception-working-day{background:linear-gradient(135deg,#56916924,#5691690a)}.event-chip.kind-work-calendar{--event-color:#b66f5b;cursor:default;border-style:dashed}.event-chip.kind-work-calendar.working,.work-calendar-item.working{--event-color:#5c8f6b;border-color:#5c8f6b}.work-calendar-item{border-left-color:#b66f5b}@media (max-width:900px){.work-calendar-form{grid-template-columns:1fr 1fr}.work-calendar-row{flex-direction:column;align-items:stretch}}.activity-table>div{border-bottom:1px solid var(--line);grid-template-columns:auto 1fr auto;align-items:center;gap:.8rem;padding:.9rem 1rem;display:grid}.activity-table p,.activity-table small{margin:0;font-size:.76rem}.activity-table small,.activity-table time{color:var(--muted);font-size:.68rem}.settings-card{max-width:520px;padding:1.5rem}.notice{color:#754b09;background:#fff1d6;border-radius:8px;padding:.8rem;font-size:.78rem}.login-page{background:var(--green-soft);grid-template-columns:minmax(420px,620px) 1fr;min-height:100vh;display:grid}.login-panel{background:#fff;flex-direction:column;padding:3.2rem 5rem;display:flex}.login-brand{letter-spacing:.16em;align-items:center;gap:.75rem;font-size:.67rem;font-weight:850;display:flex}.login-brand p{margin:0}.tbal-brand-login{letter-spacing:normal;flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:1.5rem}.tbal-brand-login .tbal-brand-logo{padding:0}.tbal-brand-login img{width:210px;max-width:100%;height:105px}.tbal-brand-login>strong{color:var(--green);font-size:1.15rem}.login-panel>div:nth-child(2){margin:auto 0 2rem}.login-panel h1{letter-spacing:-.06em;font-size:3.15rem;line-height:1.02}.login-copy{color:var(--muted);max-width:420px;line-height:1.55}.login-form{gap:.85rem;display:grid}.login-form label{gap:.35rem;font-size:.72rem;font-weight:800;display:grid}.form-error{color:#9d2d27;background:#ffe4e1;border-radius:8px;margin:0;padding:.7rem;font-size:.75rem}.login-note{color:var(--muted);margin:1rem 0 0;font-size:.67rem}.login-visual{background:var(--header-green);color:#fff;place-items:center;display:grid;position:relative;overflow:hidden}.login-visual:after{content:"";border:110px solid var(--lime);opacity:.9;border-radius:50%;width:520px;height:520px;position:absolute;top:-140px;right:-190px}.visual-card{z-index:1;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffff1c;border:1px solid #ffffff2e;border-radius:16px;width:280px;padding:1.5rem;position:relative;transform:rotate(-3deg)}.visual-card span,.visual-card strong{display:block}.visual-card span{color:#bcd0c8;font-size:.72rem}.visual-card strong{margin:.35rem 0 1.2rem;font-size:1.3rem}.mini-bars{align-items:flex-end;gap:.4rem;height:60px;display:flex}.mini-bars i{background:var(--lime);border-radius:5px;width:30%;height:45%;display:block}.mini-bars i:nth-child(2){height:80%}.mini-bars i:nth-child(3){height:60%}.login-visual blockquote{max-width:300px;font-size:1.2rem;line-height:1.4;position:absolute;bottom:3rem;left:3rem}@media (max-width:1050px){.metrics{grid-template-columns:repeat(2,1fr)}.project-grid{--project-columns:2}.dashboard-grid,.project-layout,.team-layout{grid-template-columns:1fr}.project-side{grid-template-columns:repeat(2,1fr)}.login-panel{padding:2.5rem}.kanban{grid-template-columns:repeat(5,280px)}}@media (max-width:720px){.testing-environment{--testing-banner-height:62px}.testing-environment-banner{flex-wrap:wrap;place-content:center flex-start;gap:.12rem .55rem;padding:.45rem .75rem;font-size:.68rem}.testing-environment-banner span{flex-basis:100%;order:3}.app-shell{display:block}.sidebar{z-index:5;grid-template-columns:auto 1fr auto;align-items:center;width:100%;padding:.7rem;display:grid;position:sticky}.sidebar,.testing-environment .sidebar{height:auto}.sidebar nav{min-width:0}.tbal-brand-header{gap:8px;margin-right:8px}.tbal-brand-header>strong{font-size:.85rem}.tbal-brand-header .tbal-brand-logo{padding:5px 7px}.tbal-brand-header img{width:56px;height:28px}.brand{padding:0}.brand small,.logout,.user-card{display:none}.sidebar nav{display:flex;overflow:auto}.sidebar nav a{padding:.6rem;font-size:0}.sidebar nav a span{font-size:1rem}.main-content{padding:1.25rem}.page-header{display:block}.page-header .button{margin-top:1rem}.metrics,.project-grid,.project-side,.task-list{grid-template-columns:1fr}.project-grid{--project-columns:1}.card-size-control{width:fit-content;margin-top:.5rem}.login-page{display:block}.login-panel{min-height:100vh;padding:2rem}.testing-environment .login-panel{min-height:calc(100vh - var(--testing-banner-height))}.tbal-brand-login img{width:180px;height:90px}.login-visual{display:none}.calendar-item{grid-template-columns:70px 1fr}.calendar-item small{grid-column:2}.timeline-day{grid-template-columns:70px 1fr}.span-2{grid-column:auto}.form-grid{grid-template-columns:1fr}.project-hero{display:block}.project-team{margin-top:1rem}.activity-table>div{grid-template-columns:auto 1fr}.activity-table time{grid-column:2}.permission-grid{grid-template-columns:150px repeat(4,120px)}.team-password-reset{grid-template-columns:1fr}.team-password-reset form,.temporary-password-result>div{flex-direction:column;align-items:stretch}}.calendar-header{align-items:flex-end}.calendar-actions{justify-items:end;gap:.65rem;display:grid}.scale-links,.view-controls,.view-switch{background:#e4e7e2;border-radius:9px;gap:2px;padding:3px;display:flex}.scale-links a,.view-controls a,.view-switch a{color:#626963;border-radius:7px;padding:.48rem .72rem;font-size:.7rem;font-weight:800}.scale-links a.active,.view-controls a:hover,.view-switch a.active{color:var(--ink);background:#fff;box-shadow:0 1px 3px #00000014}.view-controls{border:1px solid var(--line);background:0 0}.month-calendar{border:1px solid var(--line);background:#fff;border-radius:14px;overflow:hidden}.weekday-row{border-bottom:1px solid var(--line);background:#eef0ec;grid-template-columns:repeat(7,1fr);display:grid}.weekday-row span{text-align:center;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:.65rem;font-size:.68rem;font-weight:850}.month-grid{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.month-day{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0;min-height:128px;padding:.45rem}.month-day:nth-child(7n){border-right:0}.month-day.outside{color:#a9afaa;background:#fafbf9}.month-day.today{background:#f8ffe5}.month-day>header{justify-content:space-between;align-items:center;margin-bottom:.35rem;display:flex}.month-day>header span{border-radius:50%;place-items:center;width:25px;height:25px;font-size:.72rem;font-weight:850;display:grid}.month-day.today>header span{background:var(--ink);color:#fff}.month-day>header small{text-transform:uppercase;color:#5b7500;font-size:.55rem;font-weight:850}.event-chip,.month-day>div{gap:.25rem;display:grid}.event-chip{--event-color:#56756c;border-left:3px solid var(--event-color);background:#f0f3ef;border-radius:5px;grid-template-columns:auto minmax(0,1fr);align-items:center;min-width:0;padding:.3rem .35rem}.event-chip>span{color:var(--event-color);font-size:.55rem}.event-chip strong{white-space:nowrap;text-overflow:ellipsis;font-size:.62rem;overflow:hidden}.event-chip small{color:var(--muted);grid-column:2;font-size:.52rem}.more-events{color:var(--muted);padding-left:.35rem;font-size:.58rem}.week-calendar{grid-template-columns:repeat(7,minmax(150px,1fr));gap:.65rem;display:grid;overflow-x:auto}.week-day{border:1px solid var(--line);background:#fff;border-radius:12px;min-width:150px;min-height:460px}.week-day.today{border-top:4px solid var(--lime)}.week-day>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:.8rem;display:flex}.week-day>header span{text-transform:uppercase;color:var(--muted);font-size:.68rem;font-weight:800}.week-day>header strong{font-size:1.2rem}.week-day>div{gap:.45rem;padding:.55rem;display:grid}.week-day .event-chip{padding:.5rem}.empty-day{color:#a1a7a2;text-align:center;margin-top:2rem;font-size:.65rem}.unscheduled{border:1px solid var(--line);background:#fff;border-radius:12px;margin-top:1.2rem;padding:1rem}.unscheduled>div:first-child{align-items:center;gap:.5rem;display:flex}.unscheduled h2{margin:0;font-size:.82rem}.unscheduled>div:first-child span{background:#e5e8e4;border-radius:99px;padding:.2rem .4rem;font-size:.65rem}.unscheduled>div:last-child{gap:.5rem;margin-top:.8rem;display:flex;overflow:auto}.unscheduled a{border:1px solid var(--line);border-radius:8px;min-width:220px;padding:.6rem}.unscheduled small,.unscheduled strong{font-size:.68rem;display:block}.unscheduled small{color:var(--muted);margin-top:.2rem}.gantt-wrap{border:1px solid var(--line);background:#fff;border-radius:14px;min-width:0;position:relative;overflow:auto}.gantt-calendar-overlay{grid-template-columns:var(--gantt-label-width,280px) minmax(750px,1fr);min-width:calc(var(--gantt-label-width,280px) + 750px);pointer-events:none;z-index:1;display:grid;position:absolute;inset:0}.gantt-calendar-overlay>div:last-child{position:relative;overflow:hidden}.gantt-calendar-overlay i{background:#be6f581a;border-left:1px dashed #a4544147;border-right:1px dashed #a4544147;position:absolute;top:0;bottom:0}.gantt-calendar-overlay i.working{background:#4f8b601a;border-color:#3d754d4d}.gantt-calendar-marker{z-index:8;cursor:help;background:#b66f5b;border-radius:4px;min-width:4px;height:4px;position:absolute;bottom:1px}.gantt-calendar-marker.working{background:#5c8f6b}.gantt-head,.gantt-row{position:relative}.gantt-head{z-index:3}.gantt-row{z-index:2}.gantt-head,.gantt-row{grid-template-columns:var(--gantt-label-width,280px) minmax(750px,1fr);min-width:calc(var(--gantt-label-width,280px) + 750px);display:grid}.gantt-head{z-index:2;border-bottom:1px solid var(--line);background:#eef0ec}.gantt-head>div:first-child{text-transform:uppercase;padding:.75rem;font-size:.68rem;font-weight:850}.gantt-label-head{z-index:2;background:#eef0ec;position:sticky;left:0}.gantt-label-head>span{display:block}.gantt-column-resizer{z-index:20;cursor:col-resize;touch-action:none;background:0 0;border:0;width:10px;position:absolute;top:0;bottom:0;right:-5px}.gantt-column-resizer:after{content:"";background:#aeb8b1;border-radius:2px;width:2px;position:absolute;top:7px;bottom:7px;left:4px}.gantt-column-resizer:active:after,.gantt-column-resizer:hover:after{background:var(--green)}.gantt-axis,.gantt-track{background-image:linear-gradient(90deg,#0000 calc(100% - 1px),#e2e5e1 calc(100% - 1px));background-size:8.33333% 100%;position:relative}.gantt-axis{height:42px}.gantt-axis span{color:var(--muted);border-left:1px solid #d5d9d4;padding:.7rem .35rem;font-size:.6rem;position:absolute;top:0;bottom:0}.gantt-group{border-bottom:1px solid var(--line)}.gantt-group>summary{cursor:pointer;list-style:none}.gantt-group>summary::-webkit-details-marker{display:none}.gantt-row{min-height:42px}.gantt-row>div:first-child{border-right:1px solid var(--line);min-width:0;padding:.55rem .75rem}.gantt-row>div:first-child span,.gantt-row>div:first-child strong{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.gantt-row>div:first-child strong{font-size:.68rem}.gantt-row>div:first-child span{color:var(--muted);margin-top:.14rem;font-size:.58rem}.gantt-row.project-row{pointer-events:none;background:#f7f8f5}.gantt-row.project-row:hover{background:var(--green-soft)}.gantt-row.project-row>div:first-child strong{font-size:.72rem}.gantt-chevron{color:#6f786f;cursor:pointer;pointer-events:auto;width:15px;margin:0!important;display:inline-block!important;overflow:visible!important}.gantt-chevron:before{content:"›"}.gantt-group[open] .gantt-chevron:before{content:"⌄"}.gantt-project-link{color:var(--muted);pointer-events:auto;text-overflow:ellipsis;white-space:nowrap;margin-top:.14rem;font-size:.58rem;line-height:1.25;text-decoration:none;display:block;overflow:hidden}.gantt-project-link:hover{color:var(--ink);text-decoration:underline}.gantt-focus-button{color:#52645b;pointer-events:auto;vertical-align:middle;border:1px solid #c8d0ca;border-radius:99px;justify-content:center;align-items:center;width:20px;height:20px;margin-left:.35rem;font-size:.72rem;line-height:1;text-decoration:none;display:inline-flex}.gantt-focus-button.active,.gantt-focus-button:hover{border-color:var(--green);background:var(--green);color:#fff}.gantt-track{border-top:1px solid #f0f1ee}.gantt-track i{border-radius:5px;min-width:4px;height:16px;position:absolute;top:13px;box-shadow:inset 0 -1px #0000001f}.project-row .gantt-track i{height:20px;top:10px}.gantt-track i span{color:#1a241f;white-space:nowrap;padding:2px 5px;font-size:.55rem;font-style:normal;font-weight:800;display:block;overflow:hidden}.gantt-note{color:var(--muted);margin-top:.7rem;font-size:.7rem}@media (max-width:900px){.calendar-header{display:block}.calendar-actions{justify-items:start;margin-top:1rem}.month-calendar{overflow-x:auto}.month-grid,.weekday-row{min-width:800px}.week-calendar{grid-template-columns:repeat(7,190px)}}@media (max-width:720px){.calendar-actions{flex-direction:column;align-items:flex-start;display:flex}.month-day{min-height:110px}.gantt-head,.gantt-row{grid-template-columns:190px minmax(750px,1fr);min-width:940px}}.gantt-wrap .gantt-axis,.gantt-wrap .gantt-track{background-size:calc(100% / var(--gantt-weeks,12)) 100%}.project-code{white-space:nowrap;align-items:baseline;gap:.35rem;min-width:0;max-width:75%;display:flex}.project-code strong{flex:none}.project-code span{color:var(--muted);text-overflow:ellipsis;font-weight:600;overflow:hidden}.task-card-controls{flex:none;align-items:center;gap:.35rem;display:flex}.task-card-open{display:block}.task-card-open:hover h3{text-underline-offset:2px;text-decoration:underline}.task-done-form{flex:none;margin:0;display:inline-flex}.check-symbol{cursor:pointer;background:#fff;padding:0}.check-symbol:hover{border-color:var(--green);background:var(--green-soft)}.check-symbol.is-done{background:#daf0e3;border-color:#78aa8b;font-weight:900}.drag-handle{top:3rem}.task-edit-form label>small{color:var(--muted);font-size:.6rem;font-weight:500}.task-readonly{padding:1rem}.task-readonly dt{color:var(--muted);margin-top:.7rem;font-size:.65rem}.task-readonly dd{margin:.15rem 0;font-size:.78rem}.task-page-layout{grid-template-columns:minmax(0,1fr) 340px;gap:1.4rem;display:grid}.task-editor-card{background:#fff;border:1px solid var(--line);border-left:4px solid #aaa;border-radius:14px;overflow:hidden}.task-editor-card.priority-high{border-left-color:var(--red)}.task-editor-card.priority-medium{border-left-color:var(--amber)}.task-editor-card.priority-low{border-left-color:#7c9890}.task-project-link span,.task-project-link strong{display:block}.task-project-link strong{font-size:.75rem}.task-project-link span{color:var(--muted);margin-top:.2rem;font-size:.72rem}.comments.standalone{padding:1.25rem}.comments.standalone>div{border-bottom:1px solid var(--line);background:0 0;border-radius:0;padding:.65rem 0}.project-color-input{cursor:pointer;height:48px!important;padding:4px!important}.project-color-input::-webkit-color-swatch-wrapper{padding:2px}.project-color-input::-webkit-color-swatch{border:0;border-radius:6px}.gantt-page-controls{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.gantt-toolbar-group{border:1px solid var(--line);background:#f1f3ef;border-radius:10px;flex-wrap:nowrap;align-items:center;gap:.25rem;padding:3px;display:inline-flex}.gantt-collapse-toggle{min-height:32px;color:var(--ink);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:7px;padding:.42rem .62rem;font-size:.65rem;font-weight:750}.gantt-collapse-toggle:hover{background:#fff}.gantt-collapse-toggle.active{background:#fff;box-shadow:0 1px 3px #00000014}.gantt-task-link{display:block}.gantt-task-link:hover strong{text-underline-offset:2px;text-decoration:underline}@media (max-width:1050px){.task-page-layout{grid-template-columns:1fr}.gantt-page-controls{flex-direction:column;align-items:flex-end}}@media (max-width:720px){.gantt-page-controls{align-items:flex-start;margin-top:1rem}.project-code{max-width:70%}}.kanban{grid-template-columns:repeat(5,minmax(0,1fr));gap:.55rem;overflow-x:hidden}.kanban .task-card{overflow:hidden}.kanban .task-card h3{overflow-wrap:anywhere;font-size:.76rem}.kanban .task-card-controls{gap:.2rem}.kanban .quick-status select{font-size:.66rem}.kanban .quick-status button{padding:.25rem}.directory-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.directory-section{border:1px solid var(--line);background:#fff;border-radius:14px;min-width:0;padding:1rem}.directory-section>header{justify-content:space-between;align-items:center;display:flex}.directory-section h2{margin:0;font-size:1rem}.directory-section>header span{background:#e9ece8;border-radius:99px;padding:.2rem .45rem;font-size:.68rem}.directory-section .create-box{margin:1rem 0}.directory-list{gap:.35rem;max-height:520px;display:grid;overflow-y:auto}.directory-list article{border-bottom:1px solid var(--line);padding:.65rem .2rem}.directory-list small,.directory-list strong{display:block}.directory-list strong{font-size:.76rem}.directory-list small{color:var(--muted);overflow-wrap:anywhere;margin-top:.2rem;font-size:.64rem}.project-create{background:#fff;margin-bottom:1rem}.project-navigation{justify-content:space-between;margin:-.6rem 0 1rem;display:flex}.project-navigation a{color:var(--muted);font-size:.72rem;font-weight:750}.project-navigation a:hover{color:var(--ink)}.project-main .section-title{gap:.8rem}.task-sort{align-items:center;gap:.35rem;margin-left:auto;display:flex}.task-sort label{color:var(--muted);font-size:.66rem}.task-sort select{border:1px solid var(--line);border-radius:7px;padding:.3rem;font-size:.68rem}.task-sort button{border:0;border-radius:7px;padding:.36rem .55rem;font-size:.65rem;font-weight:750}.task-modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0d1b1794;place-items:center;padding:2rem;display:grid;position:fixed;inset:0}.task-modal{background:var(--paper);border-radius:18px;width:min(1080px,96vw);max-height:92vh;padding:1.4rem;overflow:auto;box-shadow:0 25px 80px #00000047}.task-modal>header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.task-modal h1{margin:0;font-size:1.45rem;line-height:1.2}.task-modal .eyebrow{margin-bottom:.4rem}.task-modal-actions{align-items:center;gap:.5rem;display:flex}.task-modal-close{background:#e2e6e1;border-radius:50%;place-items:center;width:34px;height:34px;font-size:1.5rem;line-height:1;display:grid}.task-modal-close:hover{background:#d5dad4}.task-calendar-link{border:1px solid var(--line);width:34px;height:34px;color:var(--green);background:#fff;border-radius:50%;place-items:center;padding:0;display:grid}.task-calendar-link:hover{background:#edf3ef;border-color:#aebdb3}.task-calendar-link.disabled{color:#aeb5b0;cursor:not-allowed;opacity:.65;background:#ecefeb}.task-calendar-link svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:17px;height:17px}.calendar-back-link{color:var(--green);margin-top:.35rem;font-size:.65rem;font-weight:800;display:inline-block}.calendar-focus-task{z-index:2;outline-offset:2px;outline:2px solid #4e7e5ab8;scroll-margin:35vh 35vw;animation:calendar-focus-pulse 1.5s ease-out 2;position:relative;background:#e8f3e8!important}@keyframes calendar-focus-pulse{0%,to{box-shadow:0 0 #4e7e5a00}45%{box-shadow:0 0 0 7px #4e7e5a2e}}@media (prefers-reduced-motion:reduce){.calendar-focus-task{animation:none}}.view-controls button.calendar-today{color:#626963;background:0 0;border:0;border-radius:7px;padding:.48rem .72rem;font-size:.7rem;font-weight:800}.view-controls button.calendar-today:hover{color:var(--ink);background:#fff}.week-step{gap:.3rem;display:flex}.week-step a{color:var(--muted);border:1px solid var(--line);background:#fff;border-radius:7px;padding:.35rem .55rem;font-size:.65rem;font-weight:750}.month-day#today,.week-day#today{scroll-margin-block:40vh;scroll-margin-inline:40vw}@media (max-width:1100px){.kanban{grid-template-columns:repeat(2,minmax(0,1fr));height:auto;overflow:visible}.kanban-column{height:62vh}.directory-grid{grid-template-columns:1fr 1fr}.task-page-layout{grid-template-columns:1fr}}@media (max-width:720px){.kanban{grid-template-columns:1fr}.kanban-column{height:65vh}.directory-grid{grid-template-columns:1fr}.task-modal-backdrop{padding:.5rem}.task-modal{width:100%;max-height:98vh;padding:1rem}.task-modal h1{font-size:1.1rem}.project-main .section-title{flex-wrap:wrap;align-items:flex-start}.task-sort{order:3;width:100%;margin-left:0}}.kanban .task-card,.kanban .task-card-open,.kanban .task-card-top,.kanban-column,.kanban-column-body,.kanban-drag-card{min-width:0;max-width:100%}.kanban-column-body{overflow-x:hidden}.kanban .task-card-top{display:grid}.kanban .project-code{max-width:calc(100% - 1.2rem)}.kanban .task-card-controls{justify-content:flex-start}.kanban .task-card h3{white-space:normal;word-break:break-word}.kanban .task-meta>*{overflow-wrap:anywhere;min-width:0}.kanban .drag-handle{top:.7rem}.directory-help{color:var(--muted);margin:-1.15rem 0 1rem;font-size:.75rem}.directory-item{border-bottom:1px solid var(--line);padding:.1rem .2rem}.directory-item>summary{cursor:pointer;justify-content:space-between;align-items:flex-start;gap:.6rem;padding:.65rem 0;list-style:none;display:flex}.directory-item>summary::-webkit-details-marker{display:none}.directory-item>summary span{min-width:0}.directory-item>summary small,.directory-item>summary strong{display:block}.directory-item>summary strong{font-size:.76rem}.directory-item>summary small{color:var(--muted);overflow-wrap:anywhere;margin-top:.2rem;font-size:.64rem}.directory-item>summary b{color:var(--green);flex:none;font-size:.62rem}.directory-item>.stack-form{background:#f4f6f2;border-radius:9px;margin-bottom:.75rem;padding:.75rem}.directory-item button{background:var(--green);color:#fff;border:0;border-radius:7px;padding:.5rem;font-weight:750}.stack-form label>small{color:var(--muted);font-size:.6rem;font-weight:500}.calendar-filters{border:1px solid var(--line);background:#fff;border-radius:12px;grid-template-columns:minmax(200px,1.25fr) repeat(4,minmax(130px,.68fr)) auto;align-items:end;gap:.7rem;margin-bottom:1rem;padding:.85rem;display:grid}.calendar-filters label{color:var(--muted);gap:.3rem;font-size:.66rem;font-weight:800;display:grid}.calendar-filters select{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:8px;padding:.55rem}.calendar-filter-actions{align-items:center;gap:.45rem;display:flex}.calendar-filter-actions a,.calendar-filter-actions button{white-space:nowrap;border:0;border-radius:8px;padding:.62rem .8rem;font-size:.7rem;font-weight:800}.calendar-filter-actions button{background:var(--green);color:#fff}.calendar-filter-actions a{color:var(--ink);background:#e7eae6}@media (max-width:1180px){.calendar-filters{grid-template-columns:1fr 1fr 1fr}.calendar-filters label:first-of-type{grid-column:span 2}}@media (max-width:650px){.calendar-filters{grid-template-columns:1fr}.calendar-filters label:first-of-type{grid-column:auto}.calendar-filter-actions{flex-wrap:wrap}}.task-detail-row{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:.8rem;display:grid}.task-detail-row>a{min-width:0}.task-detail-row small,.task-detail-row strong{display:block}.task-detail-row strong{font-size:.82rem}.task-detail-row small{color:var(--muted);margin-top:.2rem;font-size:.66rem}.task-detail-row>a:hover strong{text-underline-offset:2px;text-decoration:underline}.task-sort button[name=order]{min-width:31px;padding:.28rem;font-size:.9rem}.gantt-wrap{min-height:420px;max-height:calc(100vh - 190px)}.gantt-page{flex-direction:column;height:calc(100dvh - 4.8rem);min-height:0;display:flex;overflow:hidden}.gantt-page>.page-header{flex:none;margin-bottom:.7rem}.gantt-page-header{grid-template-columns:minmax(260px,360px) minmax(0,1fr);align-items:flex-end;gap:1.25rem;display:grid}.gantt-page-title{min-width:235px}.gantt-page-title .eyebrow{margin-bottom:.3rem}.gantt-page-title h1{margin-bottom:.45rem;font-size:1.85rem;line-height:1}.gantt-summary{flex-wrap:wrap;align-items:center;gap:.2rem .55rem;font-size:.61rem;line-height:1.25;display:flex}.gantt-summary span{white-space:nowrap}.gantt-summary span+span:before{content:"·";color:#adb5af;margin-right:.55rem}.gantt-page>.gantt-wrap{flex:1;min-height:0;max-height:none}.gantt-page>.gantt-note{flex:none;margin-bottom:0}.gantt-head{z-index:10;box-shadow:0 1px 0 var(--line);position:sticky;top:0}.project-filters{border:1px solid var(--line);background:#fff;border-radius:12px;grid-template-columns:minmax(210px,1.2fr) repeat(3,minmax(145px,.75fr)) auto;align-items:end;gap:.7rem;margin-bottom:1rem;padding:.85rem;display:grid}.project-filters label{color:var(--muted);gap:.3rem;font-size:.66rem;font-weight:800;display:grid}.project-filters input,.project-filters select{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:8px;padding:.55rem}.project-filter-actions{gap:.4rem;display:flex}.project-filter-actions a,.project-filter-actions button{white-space:nowrap;border:0;border-radius:8px;padding:.62rem .75rem;font-size:.68rem;font-weight:800}.project-filter-actions button{background:var(--green);color:#fff}.project-filter-actions a{color:var(--ink);background:#e7eae6}.project-table-wrap{border:1px solid var(--line);background:#fff;border-radius:14px;overflow:auto}.project-table{border-collapse:collapse;width:100%;min-width:850px}.project-table th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;background:#eef0ec;padding:.65rem .8rem;font-size:.62rem}.project-table td{border-top:1px solid var(--line);padding:.65rem .8rem;font-size:.7rem}.project-table tbody tr:hover{background:#f8faf6}.project-table td:first-child a,.project-table td:first-child span,.project-table td:first-child strong{display:block}.project-table td:first-child strong{color:var(--muted);font-size:.66rem}.project-table td:first-child span{margin-top:.1rem;font-weight:800}.table-phase{border-left:4px solid var(--project-color);background:#eef1ed;border-radius:5px;padding:.3rem .45rem;display:inline-block}.table-progress{background:#e8ebe7;border-radius:99px;width:115px;height:18px;position:relative;overflow:hidden}.table-progress>span{background:var(--lime);position:absolute;inset:0 auto 0 0}.table-progress small{text-align:center;font-size:.58rem;font-weight:850;line-height:18px;display:block;position:relative}@media (max-width:1050px){.project-filters{grid-template-columns:1fr 1fr 1fr}.project-filters label:first-of-type{grid-column:span 2}}@media (max-width:650px){.project-filters{grid-template-columns:1fr}.project-filters label:first-of-type{grid-column:auto}.project-filter-actions{flex-wrap:wrap}}.project-planning{border-top:1px solid var(--line);margin-top:1.25rem;padding-top:1.1rem}.project-planning .section-title>div p{color:var(--muted);margin:.2rem 0 0;font-size:.68rem}.project-planning-mode{border:1px solid var(--line);border-radius:9px;margin-left:auto;display:inline-flex;overflow:hidden}.project-planning-mode a{color:var(--muted);padding:.42rem .62rem;font-size:.62rem;font-weight:800;text-decoration:none}.project-planning-mode a.active{background:var(--green);color:#fff}.backward-duration-row{grid-template-columns:62px minmax(170px,1.4fr) minmax(125px,.8fr) minmax(120px,.7fr) minmax(120px,.8fr) auto;align-items:end}.backward-duration-text{color:var(--muted);white-space:nowrap;align-self:center;font-size:.65rem;font-weight:800}.backward-planning-box>summary{align-items:center;gap:.55rem;display:flex}.pilot-badge{color:#285746;letter-spacing:.06em;background:#e5eee9;border-radius:999px;padding:.18rem .45rem;font-size:.65rem}.backward-planning-intro{color:#5f6d66;margin:.75rem 0 1rem;font-size:.88rem}.backward-planning-controls{grid-template-columns:minmax(11rem,.7fr) minmax(16rem,1.3fr) auto;align-items:end;gap:.75rem;display:grid}.backward-planning-controls label{color:#506058;gap:.35rem;font-size:.76rem;font-weight:700;display:grid}.backward-planning-controls input,.backward-planning-controls select{min-height:2.45rem}.backward-preview-result{margin-top:1rem}.backward-preview-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;margin-bottom:.75rem;display:grid}.backward-preview-summary>span{background:#f7faf8;border:1px solid #dce4df;border-radius:.65rem;padding:.7rem .8rem}.backward-preview-summary small,.backward-preview-summary strong{display:block}.backward-preview-summary small{color:#647169;margin-bottom:.2rem}.backward-preview-table{border:1px solid #dce4df;border-radius:.7rem;overflow:hidden}.backward-preview-row{border-top:1px solid #e7ece9;grid-template-columns:minmax(10rem,1fr) minmax(12rem,1fr) minmax(12rem,1fr);gap:.75rem;padding:.62rem .75rem;font-size:.8rem;display:grid}.backward-preview-row:first-child{border-top:0}.backward-preview-row.is-heading{background:var(--green-soft);color:#5a6861;text-transform:uppercase;font-size:.72rem;font-weight:800}.backward-preview-row.is-changed{background:#fffbee}.backward-preview-row.is-changed>span:last-child{color:#205c47;font-weight:800}.backward-preview-note,.backward-preview-safe{border-radius:.6rem;margin-top:.7rem;padding:.65rem .75rem;font-size:.8rem}.backward-preview-note{color:#6a510a;background:#fff5d9}.backward-preview-note>span,.backward-preview-note>strong{display:block}.backward-preview-note ul{margin:.45rem 0;padding-left:1.15rem}.backward-preview-note li+li{margin-top:.25rem}.backward-preview-safe{color:#245440;background:#e8f3ed}.backward-preview-apply{justify-content:space-between;align-items:center;gap:1rem;margin-top:.8rem;display:flex}.backward-preview-apply>span{color:#5c6963;font-size:.78rem}@media (max-width:850px){.backward-planning-controls,.backward-preview-row,.backward-preview-summary{grid-template-columns:1fr}.backward-preview-row{gap:.25rem}.backward-preview-row.is-heading{display:none}.backward-preview-apply{flex-direction:column;align-items:stretch}}.phase-create-form{grid-template-columns:1.35fr repeat(3,minmax(120px,1fr)) 70px auto;align-items:end;gap:.55rem;display:grid}.phase-create-form label,.phase-edit-row label{color:var(--muted);gap:.25rem;font-size:.62rem;font-weight:800;display:grid}.dependency-panel input,.dependency-panel select,.phase-create-form input,.phase-create-form select,.phase-edit-row input,.phase-edit-row select{border:1px solid var(--line);background:#fff;border-radius:7px;min-width:0;padding:.45rem}.phase-date-fields{display:contents}.phase-editor-list{gap:.45rem;display:grid}.phase-editor-list article{background:#f4f6f2;border-radius:9px;align-items:end;gap:.4rem;padding:.55rem;display:flex}.phase-edit-row{flex:1;grid-template-columns:62px minmax(150px,1.3fr) repeat(3,minmax(115px,1fr)) 70px auto;align-items:end;gap:.45rem;display:grid}.phase-edit-row input[type=color]{height:34px;padding:3px}.dependency-panel button,.personal-subtask-create button,.personal-subtask-list button,.phase-delete-form button,.phase-edit-row button{background:var(--green);color:#fff;border:0;border-radius:7px;padding:.5rem;font-size:.64rem;font-weight:800}.dependency-panel button:disabled{opacity:.45;cursor:not-allowed}.form-hint.error{color:#9c3d32;font-size:.62rem}.phase-delete-form{gap:.25rem;display:grid}.phase-delete-form label{color:var(--muted);align-items:center;gap:.25rem;font-size:.58rem;display:flex}.phase-delete-form button{color:#8c3c2f;background:#ece3df}.dependency-panel{border:1px solid var(--line);border-radius:10px;margin-top:1rem;padding:.8rem}.dependency-panel h3{margin:0;font-size:.8rem}.dependency-panel>p{color:var(--muted);font-size:.65rem}.dependency-panel>form{align-items:end;gap:.5rem;display:flex}.dependency-panel label{color:var(--muted);gap:.25rem;font-size:.62rem;font-weight:800;display:grid}.dependency-list{gap:.35rem;margin-top:.7rem;display:grid}.dependency-list form{background:#f4f6f2;border-radius:7px;justify-content:space-between;align-items:center;padding:.4rem .55rem;font-size:.65rem;display:flex}.personal-subtasks header{justify-content:space-between;gap:.5rem;display:flex}.personal-subtasks header h2{margin:0}.personal-subtasks header p{color:var(--muted);margin:.2rem 0;font-size:.6rem}.personal-subtasks header span{font-size:.65rem;font-weight:850}.personal-subtask-create{grid-template-columns:minmax(130px,1fr) 120px 90px auto;gap:.35rem;margin:.7rem 0;display:grid}.personal-subtask-create input,.personal-subtask-list input{border:1px solid var(--line);border-radius:7px;min-width:0;padding:.4rem;font-size:.65rem}.personal-subtask-list{gap:.35rem;display:grid}.personal-subtask-list form{grid-template-columns:auto minmax(120px,1fr) 120px 90px auto;align-items:center;gap:.35rem;display:grid}.personal-subtask-check{color:var(--muted);justify-items:center;gap:.12rem;font-size:.55rem;display:grid}.personal-subtask-check input{width:18px;height:18px}.personal-subtask-list form.is-done input[name=title]{color:var(--muted);text-decoration:line-through}.gantt-layer-toggle{background:0 0;border:0;border-radius:7px;align-items:center;min-height:32px;padding:.42rem .62rem;font-size:.65rem;font-weight:800;display:inline-flex}.gantt-layer-toggle.active{background:var(--green);color:#fff}.phase-row>div:first-child{padding-left:1.5rem}.phase-row{background:#fbfcfa}.phase-row .gantt-track i{height:18px;top:12px}.task-row.nested>div:first-child{padding-left:2.5rem}.kind-personal{background:#f3edf8;border-left-style:dotted;margin-left:.4rem}.personal-calendar-item{width:calc(100% - .65rem);margin-left:.65rem;border-left-color:#7c5aa6!important}@media (max-width:900px){.phase-create-form,.phase-edit-row{grid-template-columns:1fr 1fr}.phase-name-field{grid-column:span 2}.dependency-panel>form,.phase-editor-list article{flex-direction:column;align-items:stretch}.personal-subtask-create,.personal-subtask-list form{grid-template-columns:1fr}.personal-subtask-check{grid-auto-flow:column;justify-content:start;place-items:center start}}.task-modal{box-sizing:border-box;width:min(1480px,99vw);overflow-x:hidden}.task-page-layout{grid-template-columns:minmax(0,1fr) minmax(460px,.72fr)}.task-page-layout .side-card,.task-page-layout>.project-side{min-width:0}.task-page-layout>.project-side{grid-template-columns:minmax(0,1fr)}.personal-subtask-create{grid-template-columns:minmax(0,1fr) 90px auto}.personal-subtask-create>.personal-subtask-dates{grid-area:2/1/auto/-1}.personal-subtask-create>input[name=due_time]{grid-area:1/2}.personal-subtask-create>button{grid-area:1/3}.personal-subtask-list form{grid-template-columns:auto minmax(0,1fr) 90px auto}.personal-subtask-list form>.personal-subtask-dates{grid-area:2/2/auto/-1}.personal-subtask-list form>input[name=due_time]{grid-area:1/3}.personal-subtask-list form>button{grid-area:1/4}.personal-subtask-dates{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:.3rem;min-width:0;display:grid}.personal-subtask-dates span{color:var(--muted);font-size:.65rem}.personal-subtask-list form.is-done{opacity:.72}.event-chip.kind-personal.is-done strong,.personal-calendar-item.is-done strong,.personal-subtask-list form.is-done input[name=title]{color:var(--muted);text-decoration:line-through}.subtask-progress{white-space:nowrap;align-items:center;gap:.3rem;font-weight:800;color:#5f526d!important;font-size:.6rem!important;display:inline-flex!important}.subtask-progress i{background:#e1d8e9;border-radius:99px;width:58px;height:5px;display:inline-block;overflow:hidden}.subtask-progress i b{background:#7c5aa6;height:100%;display:block}.subtask-progress.compact i{width:38px}.event-chip>.subtask-progress{grid-column:2;margin-top:.05rem}.calendar-item>.subtask-progress{grid-column:2/4;margin-top:.25rem}.gantt-task-link>.subtask-progress{margin-top:.2rem}.phase-create-form{grid-template-columns:minmax(140px,1.2fr) minmax(140px,1fr) repeat(4,minmax(95px,.75fr)) auto auto auto}.phase-edit-row{grid-template-columns:62px minmax(150px,1.4fr) repeat(4,minmax(95px,.75fr)) auto auto auto}.phase-form-message{grid-column:1/-1;font-size:.62rem}.phase-form-message.error{color:#9c3d32}.phase-form-message.success{color:#37694f}.phase-create-form button:disabled,.phase-edit-row button:disabled{opacity:.55;cursor:wait}.phase-editor-list article.is-inactive{opacity:.58;background:#ecefec}.template-apply-form{grid-template-columns:minmax(180px,260px) 1fr auto;align-items:end;gap:.8rem;padding:1rem;display:grid}.template-apply-form label{color:var(--muted);gap:.3rem;font-size:.66rem;font-weight:800;display:grid}.template-apply-form select{border:1px solid var(--line);background:#fff;border-radius:8px;padding:.55rem}.template-apply-form p{color:var(--muted);margin:0;font-size:.65rem}.milestone-row .gantt-track i{transform-origin:50%;border-radius:2px;transform:rotate(45deg)}.personal-span-start{border-radius:7px 0 0 7px}.personal-span-middle{border-radius:0}.personal-span-end{border-radius:0 7px 7px 0}.personal-span-end,.personal-span-middle{border-left-style:dotted}@media (max-width:1200px){.task-page-layout{grid-template-columns:minmax(0,1fr) 410px}.personal-subtask-create,.personal-subtask-list form{grid-template-columns:1fr}.personal-subtask-dates{grid-template-columns:105px 1fr 75px}.personal-subtask-check{grid-auto-flow:column;justify-content:start;place-items:center start}}@media (max-width:1100px){.phase-create-form,.phase-edit-row{grid-template-columns:1fr 1fr}.phase-name-field{grid-column:span 2}.template-apply-form{grid-template-columns:1fr}.phase-form-message{grid-column:1/-1}}@media (max-width:900px){.personal-subtask-dates,.task-page-layout{grid-template-columns:1fr}}.gantt-project-body{min-width:calc(var(--gantt-label-width,280px) + 750px);position:relative}.gantt-project-body.is-saving{cursor:progress}.gantt-project-body .gantt-row{height:48px;position:relative}.gantt-phase-label{text-align:left;background:0 0;border:0;width:100%;min-width:0;height:100%;padding:.55rem .75rem .55rem 1.5rem;display:block}.gantt-row>.gantt-row-label{align-items:stretch;padding:0;display:flex;position:relative}.gantt-row-label>.gantt-phase-label,.gantt-row-label>.gantt-task-link{flex:1;min-width:0;margin-right:2.65rem;padding-right:.45rem}.task-row.nested .gantt-task-link,.task-row.unassigned .gantt-task-link{padding-left:2.5rem}.gantt-center-button{z-index:5;color:#596960;cursor:pointer;background:#ffffffe0;border:1px solid #d2d8d3;border-radius:99px;width:24px;height:24px;padding:0;font-size:.72rem;position:absolute;top:50%;right:.5rem;transform:translateY(-50%)}.gantt-task-cell .gantt-task-link{grid-template-columns:minmax(0,1fr) auto;width:auto}.gantt-task-cell .gantt-task-link>.subtask-progress{min-width:0;overflow:hidden}.gantt-center-button:hover{border-color:var(--green);color:var(--green)}.gantt-phase-label:not(:disabled){cursor:pointer}.gantt-phase-label:not(:disabled):hover{background:#f0f4ee}.gantt-phase-label span,.gantt-phase-label strong{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.gantt-phase-label strong{font-size:.68rem}.gantt-phase-label span{color:var(--muted);margin-top:.14rem;font-size:.58rem}.gantt-phase-bar{z-index:4;cursor:grab;touch-action:none;border:0;border-radius:5px;min-width:6px;height:18px;padding:0;position:absolute;top:15px;box-shadow:inset 0 -1px #00000026}.gantt-phase-bar:active{cursor:grabbing}.gantt-phase-bar.is-backward,.gantt-phase-bar.is-backward:active{cursor:default}.gantt-mode-toggle{background:0 0;border:0;border-radius:7px;flex-wrap:nowrap;flex:none;display:inline-flex;overflow:hidden}.gantt-mode-toggle a{white-space:nowrap;min-height:32px;color:var(--muted);align-items:center;padding:.4rem .5rem;font-size:.63rem;font-weight:800;text-decoration:none;display:inline-flex}.gantt-mode-toggle a.active{background:var(--green);color:#fff}.gantt-page-controls{flex-wrap:nowrap;justify-content:flex-end;gap:.3rem;min-width:0;overflow:visible}.gantt-navigation,.gantt-page-controls>*{flex:none}.gantt-page-controls .gantt-collapse-toggle,.gantt-page-controls .gantt-layer-toggle{padding-left:.5rem;padding-right:.5rem}.gantt-page-controls .scale-links a,.gantt-page-controls .view-controls a{padding-left:.58rem;padding-right:.58rem}@media (max-width:1050px){.gantt-page-header{display:block}}.gantt-phase-bar>span{color:#17221d;white-space:nowrap;text-overflow:ellipsis;padding:2px 10px;font-size:.55rem;font-weight:800;display:block;overflow:hidden}.gantt-phase-bar.is-milestone{transform-origin:50%;border-radius:2px;min-width:14px;height:14px;top:17px;transform:translate(-50%)rotate(45deg);width:14px!important}.gantt-resize-handle{cursor:ew-resize;z-index:2;background:#ffffffbf;border-radius:3px;width:7px;bottom:1px;height:auto!important;display:block!important;position:absolute!important;top:1px!important}.gantt-resize-handle.start{left:1px}.gantt-resize-handle.end{right:1px}.gantt-dependency-layer{left:var(--gantt-label-width,280px);width:calc(100% - var(--gantt-label-width,280px));z-index:3;pointer-events:none;height:100%;position:absolute;top:0;overflow:visible}.gantt-dependency-layer path{fill:none;stroke:#66756e;stroke-width:1.35px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.gantt-dependency-layer path.is-minimum{stroke-dasharray:5 4}.gantt-inline-error{z-index:8;color:#922e29;background:#ffe1dd;border-radius:7px;padding:.4rem .65rem;font-size:.65rem;position:absolute;top:.35rem;right:.6rem}.task-row.unassigned>div:first-child{background:#faf8f4;padding-left:2.5rem}.task-row.unassigned>div:first-child strong:before{content:"↳ ";color:#9b7f55}.phase-modal-backdrop{z-index:70;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0d1b1794;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.phase-modal{background:var(--paper);border-radius:16px;width:min(720px,96vw);padding:1.25rem;box-shadow:0 24px 80px #0000004d}.phase-modal>header{justify-content:space-between;align-items:flex-start;display:flex}.phase-modal h2{margin:0;font-size:1.35rem}.phase-modal-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;margin-top:1rem;display:grid}.phase-modal-form label{color:var(--muted);gap:.3rem;font-size:.68rem;font-weight:800;display:grid}.phase-modal-form input{border:1px solid var(--line);background:#fff;border-radius:8px;width:100%;padding:.6rem}.phase-modal-form input[type=color]{height:43px;padding:4px}.phase-modal-form .checkbox{align-self:end;padding-bottom:.65rem}.phase-modal-hint{color:var(--muted);margin:0;font-size:.65rem}.phase-modal-actions{justify-content:flex-end;gap:.5rem;display:flex}.phase-modal-actions>button:first-child{background:#e4e7e3;border:0;border-radius:9px;padding:.65rem .9rem;font-weight:750}.milestone-row .gantt-track>i{transform:none}.gantt-task-link{grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:.45rem;min-width:0;height:100%;padding:.35rem .55rem;display:grid}.gantt-task-link>strong{grid-area:1/1/auto/-1;font-size:.67rem}.gantt-task-link>.gantt-task-meta,.gantt-task-link>strong{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.gantt-task-link>.gantt-task-meta{color:var(--muted);grid-area:2/1;font-size:.57rem}.gantt-task-link>.subtask-progress{grid-area:2/2;justify-self:end;max-width:92px;margin:0}.gantt-task-bar{opacity:.9;border-radius:4px;height:12px;top:18px;overflow:hidden}.gantt-task-bar.is-milestone{min-width:12px;height:12px;top:18px;width:12px!important}.gantt-task-bar .gantt-resize-handle{width:6px}.gantt-task-bar>span{z-index:3;padding:0 8px;font-size:.5rem;line-height:12px;position:relative}.gantt-task-deviation{z-index:1;min-width:2px;position:absolute;top:0;bottom:0;box-shadow:inset 0 0 0 1px #4e41301f}.gantt-task-deviation.is-early{background:#9fc9a5}.gantt-task-deviation.is-late{background:#dfa39a}.gantt-task-bar.is-overdue{box-shadow:0 0 0 1px #8f231c6b}.gantt-navigation>a{text-align:center;min-width:31px;padding:.38rem .52rem;font-size:.9rem}.gantt-navigation>a:nth-of-type(3){padding:.48rem .72rem;font-size:.7rem}.gantt-wrap.daily-grid .gantt-axis,.gantt-wrap.daily-grid .gantt-track{background-image:linear-gradient(90deg,#0000 calc(100% - 1px),#edf0ec calc(100% - 1px));background-size:calc(100% / var(--gantt-days,42)) 100%}.gantt-wrap.weekend-grid .gantt-axis,.gantt-wrap.weekend-grid .gantt-track{background-image:linear-gradient(90deg,#0000 calc(100% - 1px),#e5e9e4 calc(100% - 1px)),linear-gradient(90deg,#0000 0 71.4286%,#636f661a 71.4286% 100%);background-repeat:repeat,repeat;background-size:calc(100% / var(--gantt-days,28)) 100%,calc(100% / var(--gantt-weeks,4)) 100%}.gantt-wrap.has-today .gantt-axis:after,.gantt-wrap.has-today .gantt-track:after{content:"";left:var(--today-left);z-index:6;pointer-events:none;background:#d84b3e;width:1px;position:absolute;top:0;bottom:0;box-shadow:0 0 0 .35px #d84b3e33}.gantt-wrap.has-today .gantt-axis:after{width:2px}.gantt-axis>span{align-content:center;padding:.32rem .38rem;display:grid}.gantt-axis>span small,.gantt-axis>span strong{white-space:nowrap;text-overflow:ellipsis;line-height:1.15;display:block;overflow:hidden}.gantt-axis>span strong{color:#3f4944;font-size:.58rem}.gantt-axis>span small{color:var(--muted);margin-top:.12rem;font-size:.54rem}.gantt-history-controls{align-items:center;gap:.3rem;display:flex;position:relative}.gantt-history-controls form{margin:0}.gantt-history-controls button{width:32px;min-height:32px;color:var(--ink);background:0 0;border:0;border-radius:7px;place-items:center;padding:0;font-size:.9rem;font-weight:800;display:inline-grid}.gantt-history-controls button:not(:disabled):hover{background:#fff}.gantt-history-controls button:disabled{opacity:.4;cursor:not-allowed}.gantt-history-controls>span{z-index:20;color:#356047;white-space:nowrap;background:#e7f1e9;border-radius:6px;padding:.3rem .45rem;font-size:.58rem;position:absolute;top:calc(100% + .25rem);right:0}.gantt-history-controls>span.error{color:#922e29;background:#ffe1dd}.gantt-axis,.gantt-track{cursor:grab}.gantt-wrap.is-panning,.gantt-wrap.is-panning .gantt-axis,.gantt-wrap.is-panning .gantt-track{cursor:grabbing;-webkit-user-select:none;user-select:none}.phase-modal{width:min(980px,96vw);max-height:92vh;overflow:auto}.phase-modal-dependencies{border-top:1px solid var(--line);margin-top:1rem;padding-top:.9rem}.phase-modal-dependencies h3{margin:0 0 .55rem;font-size:.78rem}.phase-modal-new-dependency{border-top:1px dashed #ccd3cd;margin-top:.8rem;padding-top:.75rem}.phase-modal-new-dependency h4{margin:0;font-size:.68rem}.phase-modal-dependencies>p{color:var(--muted);font-size:.65rem}.phase-modal-dependencies form{background:#f4f6f2;border-radius:8px;grid-template-columns:minmax(145px,1fr) auto minmax(145px,1fr) 90px minmax(170px,1fr) auto auto;align-items:end;gap:.45rem;margin-top:.4rem;padding:.55rem;display:grid}.phase-modal-dependencies form.is-new{background:#edf3ed}.phase-modal-dependencies label{color:var(--muted);gap:.25rem;font-size:.6rem;font-weight:800;display:grid}.phase-modal-dependencies input,.phase-modal-dependencies select{border:1px solid var(--line);background:#fff;border-radius:7px;min-width:0;padding:.45rem}.dependency-edit-item button,.phase-modal-dependencies button{background:var(--green);color:#fff;border:0;border-radius:7px;padding:.5rem;font-size:.62rem;font-weight:800}.dependency-edit-item button.danger,.phase-modal-dependencies button.danger{color:#8c3c2f;background:#ece3df}.dependency-edit-item{background:#f4f6f2;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.35rem;padding:.5rem;display:grid}.dependency-list .dependency-edit-item form{background:0 0;flex-wrap:wrap;justify-content:flex-start;gap:.4rem;padding:0;display:flex}.dependency-edit-item form:first-child,.dependency-edit-item label{min-width:0}.dependency-edit-item .phase-form-message{flex-basis:100%}.dependency-save-status{color:#37694f;text-align:center;flex:0 0 18px;align-self:center;font-size:.75rem;font-weight:900}.kanban-column-body{gap:.38rem}.kanban .task-card{border-radius:8px;padding:.48rem .55rem}.kanban .task-card-top{align-items:center;gap:.35rem;display:flex}.kanban .project-code{max-width:62%;font-size:.58rem}.kanban .task-card-controls{margin-left:auto}.kanban .task-card h3{margin:.38rem 0;font-size:.72rem;line-height:1.2}.kanban .task-meta{gap:.3rem;font-size:.58rem;line-height:1.15;display:flex}.kanban .quick-status{grid-template-columns:minmax(0,1fr) auto;gap:.25rem;margin-top:.4rem;display:grid}.kanban .quick-status select{padding:.18rem;font-size:.6rem}.kanban .quick-status button{padding:.18rem .35rem;font-size:.58rem}.kanban .pill{padding:.18rem .3rem;font-size:.52rem}.kanban .check-symbol{width:18px;height:18px}.kanban .drag-handle{font-size:.72rem;top:.32rem;right:.35rem}.kanban-drag-card .task-card-top{padding-right:.65rem}.kanban-filters{border:1px solid var(--line);background:#fff;border-radius:12px;grid-template-columns:minmax(190px,1.2fr) repeat(4,minmax(125px,.72fr)) auto;align-items:end;gap:.65rem;margin-bottom:.8rem;padding:.8rem;display:grid}.kanban-filters label{color:var(--muted);gap:.28rem;min-width:0;font-size:.64rem;font-weight:800;display:grid}.kanban-filters input,.kanban-filters select{border:1px solid var(--line);width:100%;min-width:0;color:var(--ink);background:#fff;border-radius:8px;padding:.52rem}.kanban-filter-actions{align-items:center;gap:.4rem;display:flex}.kanban-filter-actions a,.kanban-filter-actions button{white-space:nowrap;border:0;border-radius:8px;padding:.6rem .72rem;font-size:.68rem;font-weight:800}.kanban-filter-actions button{background:var(--green);color:#fff}.kanban-filter-actions a{color:var(--ink);background:#e7eae6}.kanban-filters+.kanban-help{margin-top:0}.kanban-filters~.kanban{height:calc(100vh - 335px);min-height:420px}@media (max-width:1180px){.kanban-filters{grid-template-columns:1fr 1fr 1fr}.kanban-filters label:first-of-type{grid-column:span 2}.kanban-filters~.kanban{height:auto}}@media (max-width:650px){.kanban-filters{grid-template-columns:1fr}.kanban-filters label:first-of-type{grid-column:auto}.kanban-filter-actions{flex-wrap:wrap}}@media (max-width:720px){.gantt-project-body{min-width:940px}.gantt-dependency-layer{width:calc(100% - 190px);left:190px}.phase-modal-form{grid-template-columns:1fr}.phase-modal-form .span-2{grid-column:auto}.dependency-edit-item,.phase-modal-dependencies form{grid-template-columns:1fr}.dependency-list .dependency-edit-item form{flex-direction:column;align-items:stretch}}.task-done-error{color:var(--red);max-width:180px;margin-top:.25rem;font-size:.62rem;line-height:1.2;display:block}.error-page{background:var(--paper);place-items:center;min-height:100vh;padding:2rem;display:grid}.error-card{border:1px solid var(--line);width:100%;max-width:460px;box-shadow:var(--shadow);background:#fff;border-radius:16px;padding:2rem}.error-card h1{margin-bottom:.6rem}.error-card>p:not(.eyebrow){color:var(--muted);margin-bottom:1.4rem}.error-actions{flex-wrap:wrap;gap:.6rem;display:flex}.page-header-actions{flex-wrap:wrap;align-items:center;gap:.8rem;display:flex}.archived-link{color:var(--muted);border:1px solid var(--line);white-space:nowrap;background:#fff;border-radius:8px;padding:.5rem .7rem;font-size:.7rem;font-weight:800}.archived-link:hover{color:var(--green);border-color:#b9c4bb}.archived-badge{color:#7a6a45;text-transform:uppercase;vertical-align:middle;background:#ece5d4;border-radius:6px;margin-left:.35rem;padding:.12rem .4rem;font-size:.56rem;font-weight:800;display:inline-block}.project-card .archived-badge{font-size:.5rem}.planner-check{color:var(--muted);white-space:nowrap;align-items:center;gap:.3rem;margin-top:.3rem;font-size:.6rem;font-weight:700;display:flex}.archive-form{gap:.5rem;display:grid}.archive-form label{color:var(--muted);align-items:center;gap:.35rem;font-size:.66rem;font-weight:700;display:flex}.studio-badge{color:#2f5d3f;background:#e0ecdc}.personal-tasks-board{border:1px solid var(--line);background:#fff;border-radius:14px;padding:1.1rem}.personal-task-create{grid-template-columns:minmax(160px,1.4fr) 110px 150px minmax(120px,1fr) auto;gap:.5rem;margin:.9rem 0 1.1rem;display:grid}.personal-task-create input,.personal-task-create select,.personal-task-create textarea{border:1px solid var(--line);color:var(--ink);border-radius:8px;padding:.5rem;font-size:.78rem}.personal-task-list{gap:.5rem;display:grid}.personal-task-row-wrap{border:1px solid var(--line);border-radius:10px;gap:.4rem;padding:.55rem;display:grid}.personal-task-row-wrap.is-done{opacity:.65;background:#f4f6f2}.personal-task-row{grid-template-columns:auto minmax(120px,1.4fr) 100px 140px 100px minmax(100px,1fr) auto;align-items:center;gap:.4rem;display:grid}.personal-task-row input,.personal-task-row select,.personal-task-row textarea{border:1px solid var(--line);color:var(--ink);border-radius:8px;min-width:0;padding:.42rem;font-size:.76rem}.personal-task-check{color:var(--muted);align-items:center;gap:.3rem;font-size:.7rem;font-weight:800;display:flex}.personal-task-check input{opacity:0;pointer-events:none;position:absolute}.personal-task-delete{color:var(--muted);justify-content:flex-end;align-items:center;gap:.4rem;font-size:.66rem;font-weight:700;display:flex}.personal-task-delete label{align-items:center;gap:.3rem;display:flex}.personal-task-delete .danger{padding:.22rem .5rem;font-size:.68rem}.personal-toggle{border:1px solid var(--line);color:var(--muted);background:#fff;border-radius:8px;padding:.35rem .6rem;font-size:.66rem;font-weight:800}.resumen-personal .personal-mini-list{gap:.35rem;margin:.6rem 0;display:grid}.resumen-personal .personal-mini-list a{background:#f7f8f5;border-radius:8px;justify-content:space-between;gap:.5rem;padding:.4rem .5rem;font-size:.74rem;display:flex}.resumen-personal .personal-mini-list small{color:var(--muted);white-space:nowrap}.personal-more{color:var(--green);font-size:.7rem;font-weight:800}.event-chip.kind-personal-task{border-style:dotted}.task-close-form{flex-direction:column;align-items:flex-start;gap:.3rem;display:inline-flex}.task-close-form .button,.task-close-form .danger{padding:.35rem .6rem;font-size:.68rem}.task-closed-notice{max-width:220px;margin:0}.closed-tasks{border:1px dashed var(--line);border-radius:10px;margin-top:.9rem;padding:.6rem}.closed-tasks summary{cursor:pointer;color:var(--muted);font-size:.72rem;font-weight:800}.closed-tasks .project-task-list{margin-top:.6rem}.closed-tasks .task-detail-row.closed{opacity:.75}.drag-chip{cursor:grab;display:block}.month-day,.week-day{position:relative}.drop-day{flex-direction:column;min-width:0;display:flex;position:absolute;inset:0}.event-chip.is-done strong,.gantt-task-link.is-done strong,.task-card.is-done .task-meta,.task-card.is-done h3,.task-detail-row.is-done strong{color:var(--muted);text-decoration:line-through}.gantt-project-body .gantt-row{overflow:hidden}.gantt-project-body .gantt-row.task-row>div:first-child{align-items:center;height:48px;padding-top:0;padding-bottom:0;display:flex}.gantt-project-body .gantt-phase-label{padding-top:.35rem;padding-bottom:.35rem;line-height:1.15}.app-shell{--app-header-height:72px;flex-direction:column;display:flex}.app-shell>.main-content{flex:1;width:100%}.app-shell .app-header{top:var(--testing-banner-height,0);z-index:20;width:100%;height:var(--app-header-height);background:var(--header-green);grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:10px 24px;display:grid;position:sticky}.app-header .brand{margin:0;padding:0}.app-header nav{scrollbar-width:thin;scrollbar-color:#6e8b7f transparent;gap:3px;min-width:0;display:flex;overflow-x:auto}.app-header nav a{white-space:nowrap;flex:none;gap:5px;min-height:44px;padding:10px 9px;font-size:.78rem}.app-header nav a span{width:auto;font-size:1rem}.app-header nav a[aria-current=page]{color:#fff;box-shadow:inset 0 -3px var(--lime);background:#ffffff12}.app-header .user-card{border-top:0;border-left:1px solid #ffffff30;min-height:44px;margin:0;padding:0 0 0 12px;display:flex}.app-header .user-card>div{max-width:110px;overflow:hidden}.app-header .user-card strong{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.app-header .logout{white-space:nowrap;min-height:44px;display:block}.app-shell .gantt-page{height:calc(100dvh - var(--testing-banner-height,0px) - var(--app-header-height) - 4.8rem)}@media (max-width:1100px){.app-shell{--app-header-height:112px}.app-shell .app-header{grid-template-rows:44px 44px;grid-template-columns:minmax(0,1fr) auto auto;gap:4px 10px;padding:10px 16px}.app-header nav{grid-area:2/1/auto/-1}}@media (max-width:720px){.app-shell .app-header{padding-left:12px;padding-right:12px}.app-header .user-card{padding-left:8px}.app-header .user-card>div{display:none}.app-header nav a{font-size:.78rem}.app-shell .gantt-page{height:calc(100dvh - var(--testing-banner-height,0px) - var(--app-header-height) - 2.5rem)}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}