:root{--green:#173d36;--lime:#d7ef97;--bg:#f3f4ef;--ink:#203c35;--muted:#65736b;--line:#dfe5dc;--red:#b34a37;--yellow:#e7b933}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 system-ui,-apple-system,sans-serif}button,input,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}a{color:var(--green)}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #d4ac28;outline-offset:3px}h1{font-size:30px;line-height:1.2;letter-spacing:-.8px;margin:0 0 8px}h2{font-size:20px;margin:0}p{margin:8px 0}.shell{display:grid;grid-template-columns:225px 1fr;min-height:100vh}.side{background:var(--green);color:white;padding:28px 18px;display:flex;flex-direction:column;gap:24px}.brand{font-weight:700;font-size:24px;letter-spacing:-1px}.brand small{display:block;font-size:12px;letter-spacing:1px;font-weight:400;color:#c6d5cb}.side nav{display:grid;gap:8px}.nav{padding:12px;text-align:left;background:none;border:0;border-radius:10px;color:#dae5db;font-size:15px}.nav.active{background:#34564a;color:#fff}.sidefooter{margin-top:auto;font-size:14px;color:#c1d1c5}.btn{background:var(--green);color:white;border:0;border-radius:10px;padding:11px 17px;font-weight:600}.btn.secondary{background:white;color:var(--green);border:1px solid var(--line)}.btn.danger{background:#fff1eb;color:var(--red)}.btn:disabled{opacity:.5;cursor:wait}.side .btn.secondary{background:#34564a;color:#fff;border-color:#527264}.main{padding:30px 34px;min-width:0;max-width:1550px;width:100%;margin:auto}.top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:22px}.muted{color:var(--muted);font-size:14px}.eyebrow{font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted)}.tag{display:inline-block;padding:4px 9px;border-radius:7px;font-size:13px;background:#e8efdd;color:#42603b}.tag.warn{background:#fff3d6;color:#805b14}.tag.red{background:#fff0e9;color:var(--red)}.toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:22px}.toolbar label{font-size:14px;color:var(--muted)}input,select{border:1px solid var(--line);border-radius:9px;padding:10px 12px;background:white;color:var(--ink)}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:22px}.card{background:white;border:1px solid var(--line);border-radius:18px;padding:22px;min-width:0}.metric .label{font-size:14px;color:var(--muted);margin-bottom:12px}.value{font-size:34px;line-height:1.2;font-weight:600;letter-spacing:-1px}.card.highlight{background:var(--green);color:white;border-color:var(--green)}.highlight .label,.highlight .muted{color:#c8d9cb}.hint{font-size:14px;color:var(--muted);margin-top:12px}.highlight .hint{color:var(--lime)}.progress{height:8px;background:#e9eee2;border-radius:6px;margin:9px 0;overflow:hidden}.progress i{display:block;height:100%;background:#94af5c}.highlight .progress{background:#526e58}.highlight .progress i{background:var(--lime)}.twocol{display:grid;grid-template-columns:1.4fr 1fr;gap:20px;margin:20px 0}.sectionhead{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:14px;text-align:left}th{color:var(--muted);font-weight:500;background:#f5f7f1}td,th{padding:13px 12px;border-bottom:1px solid var(--line)}tr:last-child td{border:0}td.num,th.num{text-align:right;white-space:nowrap}.personbtn{border:0;background:none;color:var(--green);font-weight:600;padding:0;text-align:left}.mini{width:100px}.note{padding:14px 18px;border-radius:12px;background:#ebefdf;font-size:14px;margin:16px 0}.note.warn{background:#fff4d9;color:#785919}.chart{width:100%;height:255px}.chart text{fill:#728071;font:12px system-ui}.legend{display:flex;flex-wrap:wrap;gap:14px;font-size:14px;margin:12px 0}.legend i{display:inline-block;width:12px;height:5px;background:var(--yellow);margin-right:6px;vertical-align:middle}.stage{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px}.stage:last-child{border:0}.stage b{font-variant-numeric:tabular-nums}.cards-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.empty{color:var(--muted);font-size:15px;padding:22px 0}.login{max-width:480px;margin:8vh auto;padding:30px;background:white;border:1px solid var(--line);border-radius:22px}.login .brand{color:var(--green);margin-bottom:28px}.field{display:grid;gap:7px;font-size:14px;margin:15px 0}.field input,.field select{width:100%}.login .btn{width:100%;margin-top:10px}.error{color:var(--red);font-size:14px;min-height:22px}.access-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.check{display:flex;gap:10px;align-items:flex-start;font-size:14px;margin:14px 0}.check input{margin-top:5px}.invitebox{overflow-wrap:anywhere;background:#f0f5e7;border:1px solid #b9ce91;border-radius:12px;padding:18px;margin:16px 0}.invitebox input{width:100%;font-size:14px}.method{font-size:14px;line-height:1.8}.method dt{font-weight:600;margin-top:18px}.method dd{margin:0;color:var(--muted)}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--green);color:#fff;border-radius:10px;padding:12px 18px;max-width:90vw;display:none;z-index:20}.loading{padding:80px;text-align:center}.access-row{border:1px solid var(--line);border-radius:12px;padding:16px;margin:12px 0}.access-row .check{margin:9px 0}.small{font-size:13px}.detail-title{font-size:16px}.footer{font-size:13px;color:var(--muted);margin-top:28px}.click{cursor:pointer}.click:hover{border-color:#9eb578}.top .btn{flex-shrink:0}.stale{color:var(--red)}@media(max-width:1100px){.grid{grid-template-columns:1fr 1fr}.twocol,.access-grid{grid-template-columns:1fr}.cards-grid{grid-template-columns:1fr 1fr}.main{padding:24px}}@media(max-width:760px){.shell{display:block}.side{padding:12px;position:sticky;top:0;z-index:10;gap:8px}.side .brand,.sidefooter{display:none}.side nav{display:flex;overflow-x:auto;gap:4px}.nav{font-size:14px;padding:10px;white-space:nowrap}.main{padding:22px 15px}.top{flex-wrap:wrap}h1{font-size:26px}.card{padding:18px;border-radius:14px}.value{font-size:30px}.grid{gap:10px}.cards-grid{grid-template-columns:1fr}.login{margin:40px 15px}.chart{height:220px}.mini{width:65px}td,th{padding:10px}.toolbar select{max-width:100%}.loading{padding:60px 16px}}
details summary,details p,details blockquote{overflow-wrap:anywhere;word-break:break-word}details blockquote{margin:12px 0;padding-left:12px;border-left:3px solid #dfe5dc}details{min-width:0}summary{cursor:pointer}
.card.tempo-metric{text-align:center;align-self:start;padding:16px}.tempo-metric .label{margin-bottom:10px}.tempo-value{font-size:clamp(18px,1.65vw,24px);font-weight:600;line-height:1.25;letter-spacing:-.4px;overflow-wrap:break-word}.tempo-negative{color:var(--red)}
.spark-cell{width:200px;min-width:195px}.manager-sparkline{display:block;width:180px;height:64px}.spark-plan{stroke:#9ca89d;stroke-width:1.5;stroke-dasharray:4 3}.spark-fact{fill:none;stroke:var(--yellow);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.spark-dot{fill:var(--yellow)}.spark-axis{fill:none;stroke:var(--line);stroke-width:1}.spark-label{fill:var(--muted);font:10px system-ui}
.forecast-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.card.forecast-tile{padding:14px 10px;border-radius:14px;text-align:center}.forecast-tile .label{font-size:13px;color:var(--muted);margin-bottom:8px}.forecast-number{font-size:27px;font-weight:600;line-height:1.2;letter-spacing:-.7px;overflow-wrap:anywhere}.forecast-join{font-size:15px;font-weight:400;color:var(--muted);letter-spacing:0}.forecast-hint{font-size:12px;color:var(--muted);margin-top:7px}.forecast-negative{color:var(--red)}.forecast-positive{color:#26724a}.forecast-note{font-size:12px;margin:10px 0 20px}@media(max-width:1100px){.forecast-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:600px){.forecast-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.forecast-number{font-size:25px}.forecast-tile:first-child{grid-column:1/-1}}
.team-forecast-table{min-width:980px}.team-forecast-table th,.team-forecast-table td{text-align:center;vertical-align:middle}.team-forecast-table th:first-child,.team-forecast-table td:first-child{text-align:left;min-width:165px}.team-forecast-table th{white-space:normal}.team-forecast-value{font-size:20px;font-weight:600;line-height:1.3;white-space:nowrap;font-variant-numeric:tabular-nums}.team-forecast-hint{font-size:12px;color:var(--muted);margin-top:5px}.team-forecast-hint.forecast-negative{color:var(--red)}.team-forecast-hint.forecast-positive{color:#26724a}
.selling-block{margin-top:20px}.selling-block table{min-width:850px}.funnel-panels{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px}.funnel-panel{padding:12px;border:1px solid #e0e7db;border-radius:14px}.funnel-row{margin:14px 0}.funnel-row>div:first-child{display:flex;justify-content:space-between;gap:12px}.funnel-track{height:8px;background:#eef1e8;border-radius:4px;margin-top:7px;overflow:hidden}.funnel-track i{display:block;height:100%;background:#e7b933;border-radius:4px}
.leading-table{min-width:1120px}.leading-table th{white-space:normal}.leading-table td{min-width:136px;vertical-align:top}.leading-table td:first-child{min-width:165px}.leading-value{font-size:22px;font-weight:650;white-space:nowrap}.leading-trend{display:block;width:136px;height:52px;margin:5px 0}.leading-month{font-size:13px;color:#607068;line-height:1.5}.leading-total{background:#f3f6e9;font-weight:750;border-top:2px solid #c9d4c0}.leading-total .leading-month{font-weight:650}.leading-daily select{max-width:220px}
.leading-daily .sectionhead{flex-wrap:wrap;gap:12px}.leading-daily .sectionhead label{max-width:100%}.leading-daily select{max-width:100%}
.time-section{margin-top:20px}.time-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}.time-day{border:1px solid #dce4d7;border-radius:12px;padding:10px;min-width:0}.time-day-head{display:flex;justify-content:space-between}.time-day select{max-width:100%;width:100%;font-size:13px;padding:5px;margin-top:6px}.time-day small{display:block;font-size:11px;color:#68766b;margin-top:4px}.time-status{display:block;margin-top:8px;font-size:13px}.time-off{background:#f2f4ed}.time-form{display:flex;flex-wrap:wrap;align-items:end;gap:14px;margin:16px 0}.time-form label{display:flex;flex-direction:column;gap:6px;max-width:100%}.time-form input,.time-form select{max-width:100%}.time-request-preview{flex-basis:100%;margin:0}.time-request{border-top:1px solid #e0e7db;padding:16px 0}.time-calendar+.note{margin-top:14px}@media(max-width:800px){.time-calendar{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:420px){.time-calendar{grid-template-columns:repeat(2,minmax(0,1fr))}.time-form label{width:100%}.time-form input,.time-form select{width:100%}}
.time-request pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px}
.time-calendar-wrap{overflow-x:auto;max-width:100%}.time-calendar-wrap .time-calendar{grid-template-columns:repeat(7,minmax(120px,1fr));min-width:900px}.time-weekhead{font-weight:700;text-align:center;padding:8px;color:#647469}.time-weekend{background:#edf1e5;border-radius:8px}.time-empty{min-height:20px}
.time-day[data-calendar-status="unpaid"],.time-legend [data-calendar-status="unpaid"]{background:#fce8e6;border-color:#c4493d;color:#84291f}
.time-day[data-calendar-status="sick"],.time-legend [data-calendar-status="sick"]{background:#fff4c2;border-color:#c39a16;color:#6b5200}
.time-day[data-calendar-status="vacation"],.time-legend [data-calendar-status="vacation"]{background:#f0e6fc;border-color:#9460bd;color:#603581}
.time-day[data-calendar-status="unpaid"] small,.time-day[data-calendar-status="sick"] small,.time-day[data-calendar-status="vacation"] small{color:inherit}
.time-day[data-calendar-status="unpaid"] select,.time-day[data-calendar-status="sick"] select,.time-day[data-calendar-status="vacation"] select{background:rgba(255,255,255,.7);color:inherit;border-color:currentColor}
.time-legend{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.time-legend span{border:1px solid;border-radius:8px;padding:3px 10px;font-size:13px}
.excursion-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:20px 0}.excursion-card{text-align:center}.excursion-card h2{text-transform:capitalize}.excursion-booked{font-size:76px;font-weight:750;line-height:1.15;margin-top:24px;color:var(--green)}.excursion-paid{display:flex;align-items:baseline;justify-content:center;gap:10px;margin:22px 0 16px}.excursion-paid b{font-size:38px}.excursion-last{border-top:1px solid var(--line);padding-top:16px;color:var(--muted);display:flex;flex-direction:column;gap:3px;font-size:13px}.excursion-last b{font-size:26px;font-weight:600}@media(max-width:1000px){.excursion-grid{grid-template-columns:1fr}.excursion-booked{font-size:60px}}
.inventory-block{margin-top:24px}.inventory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.inventory-month{min-width:0}.inventory-month h3{text-transform:capitalize;margin:16px 0}.inventory-month table{font-size:14px}.inventory-month th[scope="row"]{text-align:left;font-weight:500;max-width:230px;overflow-wrap:anywhere}.inventory-month small{display:block;font-size:11px;font-weight:400;line-height:1.35;margin-top:4px}.inventory-month tfoot{font-weight:750;background:#f0f5e7}.inventory-empty{color:var(--green);font-weight:700}.inventory-review{color:#a4412d}.inventory-month .num{white-space:nowrap}@media(max-width:1250px){.inventory-grid{grid-template-columns:1fr}}
.kpi-metrics{grid-template-columns:repeat(3,minmax(0,1fr));margin:20px 0}.kpi-editor{margin:20px 0}.kpi-form{display:grid;gap:14px;max-width:800px}.kpi-form label{display:grid;gap:6px;color:var(--muted)}.kpi-form textarea{min-height:95px;resize:vertical}.kpi-form input,.kpi-form textarea,.kpi-form select{font:inherit;border:1px solid var(--line);border-radius:9px;padding:10px;background:white;color:var(--ink);max-width:100%;min-width:0;width:100%}.kpi-list{margin-top:20px}.kpi-project{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:24px;border-top:1px solid var(--line);padding:22px 0}.kpi-body{min-width:0}.kpi-title{font-size:18px;font-weight:650;text-align:left}.kpi-text{white-space:pre-wrap;overflow-wrap:anywhere}.kpi-links{display:flex;flex-wrap:wrap;gap:15px;margin:16px 0}.kpi-links .personbtn{text-decoration:underline}.kpi-rail{border-left:1px solid var(--line);padding-left:18px;display:grid;gap:10px;align-content:start}.kpi-rail .tag{justify-self:start}.kpi-progress-label,.kpi-score{display:flex;align-items:center;justify-content:space-between;gap:8px}.kpi-progress-label b{font-size:23px}.kpi-track{background:#e5eadf;height:7px;border-radius:5px;overflow:hidden;margin:8px 0}.kpi-track i{display:block;height:100%;background:#e7b933}.kpi-score{border-top:1px solid var(--line);padding-top:10px}.kpi-task{display:flex;align-items:start;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.kpi-task small{display:block;color:var(--muted)}@media(max-width:720px){.kpi-project{grid-template-columns:1fr;gap:14px}.kpi-rail{border-left:0;border-top:1px solid var(--line);padding:14px 0 0}.kpi-metrics{grid-template-columns:1fr}.kpi-form input,.kpi-form select,.kpi-form textarea{font-size:16px}.kpi-editor .toolbar{flex-wrap:wrap}}
