:root{font-family:Inter,Neue Haas Grotesk,system-ui,-apple-system,sans-serif;line-height:1.5;color:#22403a;background:#f6f7fb}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 15% 20%,rgba(157,214,196,.45),transparent 35%),radial-gradient(circle at 80% 10%,rgba(255,210,196,.45),transparent 40%),linear-gradient(180deg,#fdfefe,#f3f6f8);color:#22403a}#app{min-height:100vh}.page{max-width:1440px;margin:0 auto;padding:32px clamp(16px,3vw,36px) 64px;width:100%}.hero{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:24px;border:1px solid rgba(34,64,58,.06);border-radius:24px;background:linear-gradient(135deg,#fffffff2,#e2f2ece0);box-shadow:0 12px 40px #22403a1f}h1,h2,h3{margin:8px 0}.eyebrow{text-transform:uppercase;letter-spacing:.1em;font-size:12px;color:#5c8a7c;margin:0}.muted{color:#5f7c73;margin:4px 0}.panel{margin-top:24px;padding:20px;background:#fff;border:1px solid rgba(34,64,58,.08);border-radius:20px;box-shadow:0 18px 48px #22403a14}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.period-selector select{background:#f7fbfa;border:1px solid rgba(34,64,58,.12);color:#22403a;padding:10px 12px;border-radius:12px}.grid{display:grid;gap:12px}.grid.two{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.grid.period-layout{display:flex;flex-direction:column;gap:12px}.period-sidebar{min-width:100%}.grid.three{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.grid.four{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.session-layout{display:grid;gap:5px;margin-top:24px;transition:grid-template-columns .24s ease,gap .24s ease}@media(min-width:1100px){.session-layout{grid-template-columns:minmax(320px,1.1fr) minmax(520px,2.4fr);align-items:start}.session-layout.expanded{grid-template-columns:minmax(50px,1fr) minmax(0,19fr)}.session-layout.expanded.quick-add-open{grid-template-columns:minmax(320px,1.2fr) minmax(0,3fr)}.session-layout .panel{margin-top:0}}@media(max-width:900px){.session-layout{grid-template-columns:1fr}.session-expand-toggle{display:none!important}.mini-summary{display:none}.quick-add-card{width:100%;max-width:100%}.quick-add-card .form-grid{grid-template-columns:1fr}.quick-add-card .quick-add-header .icon-button{display:none}.sessions-panel .table-wrapper{overflow:visible}.sessions-panel table{min-width:0;border:none}.sessions-panel thead{display:none}.sessions-panel tbody,.sessions-panel tr,.sessions-panel td{display:block;width:100%}.sessions-panel tbody tr{border:1px solid rgba(34,64,58,.08);border-radius:14px;padding:12px;background:#fff;margin-bottom:12px}.sessions-panel tbody tr:nth-child(2n){background:#fff}.sessions-panel td{padding:6px 0;border:none;display:grid;grid-template-columns:minmax(90px,.45fr) 1fr;gap:8px;align-items:center}.sessions-panel td:before{content:attr(data-label);text-transform:uppercase;letter-spacing:.08em;font-size:11px;color:#5c8a7c}.sessions-panel td.actions{display:flex;flex-wrap:wrap;gap:8px;padding-top:10px}.sessions-panel tbody tr.session-row:not(.is-expanded) td[data-label=Type],.sessions-panel tbody tr.session-row:not(.is-expanded) td[data-label=Pre-Tax],.sessions-panel tbody tr.session-row:not(.is-expanded) td[data-label=Tax],.sessions-panel tbody tr.session-row:not(.is-expanded) td[data-label=Total]{display:none}.sessions-panel td.actions:before{display:none}.sessions-panel td.actions button,.sessions-panel td.actions .pill{margin:0;flex:1 1 120px}.sessions-panel td.actions .row-toggle{display:inline-flex;width:32px;height:32px;padding:0;flex:0 0 auto;margin-left:auto}.sessions-panel td[colspan]{display:block;text-align:center}.sessions-panel td[colspan]:before{display:none}}@media(prefers-reduced-motion:reduce){.session-layout{transition:none}.quick-add-collapsed:hover{animation:none}.quick-add-toggle:hover{animation:none;transform:rotate(180deg)}.quick-add-collapsed:hover .quick-add-toggle,.quick-add-collapsed{animation:none}.quick-add-card{transition:none}}.card{background:#fff;border:1px solid rgba(34,64,58,.08);border-radius:16px;padding:16px;box-shadow:0 10px 30px #22403a1a}.card.subtle{background:#f9fbfa;border-color:#22403a0f}.card.is-loading{position:relative}.card-overlay{position:absolute;inset:0;background:#f6fbfab8;border-radius:16px;display:flex;align-items:center;justify-content:center;color:#22403a;font-weight:600;letter-spacing:.02em;pointer-events:all}.mt-12{margin-top:12px}.small-label{text-transform:uppercase;letter-spacing:.08em;font-size:11px;color:#3a5f53;margin:0 0 6px}.date-label{font-size:14px;font-weight:700;color:#22403a}.pill.thin{padding:4px 8px;font-size:12px}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.icon-button{width:36px;height:36px;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:18px;line-height:1}.icon{width:18px;height:18px;stroke-width:1.8}.icon-large{width:24px;height:24px}.session-expand-toggle{border-radius:10px}.row-toggle{display:none}.quick-add-card{position:relative;transition:opacity .18s ease,transform .18s ease;transform:translate(0)}.quick-add-header{margin-bottom:8px}.quick-add-collapsed{min-height:100%;display:flex;align-items:center;justify-content:center;width:60px;max-width:72px;justify-self:start;opacity:.92;transform:translate(-6px);animation:quickAddCollapseIn .18s ease}.quick-add-toggle{writing-mode:vertical-rl;transform:rotate(180deg);text-transform:uppercase;letter-spacing:.18em;font-size:12px;padding:10px 12px;margin:0;border-radius:12px;border:1px solid rgba(92,138,124,.25);background:#5c8a7c1f;color:#22403a;cursor:pointer}.quick-add-toggle:hover{animation:quickAddToggleWiggle .42s ease-in-out;transform:rotate(180deg)}.quick-add-collapsed:hover .quick-add-toggle{animation:quickAddToggleWiggle .42s ease-in-out}@keyframes quickAddToggleWiggle{0%{transform:rotate(180deg) translate(0)}25%{transform:rotate(180deg) translate(-2px)}50%{transform:rotate(180deg) translate(2px)}75%{transform:rotate(180deg) translate(-1px)}to{transform:rotate(180deg) translate(0)}}@keyframes quickAddCollapseIn{0%{opacity:1;transform:translate(0)}to{opacity:.92;transform:translate(-6px)}}.stack{display:flex;flex-direction:column;gap:10px;margin-bottom:10px}.label-row{display:flex;align-items:center;justify-content:space-between}.label-row .small{font-size:12px}.duration-buttons .chip-row{margin:4px 0 0;display:flex;flex-wrap:wrap;gap:6px}.chip{border:1px solid rgba(34,64,58,.2);background:#f3f7f6;color:#22403a;border-radius:999px;padding:6px 10px;cursor:pointer;transition:transform .12s ease,border-color .12s ease,background .12s ease;font-size:13px}.chip:hover{transform:translateY(-1px);border-color:#5c8a7c99}.chip-selected{background:linear-gradient(135deg,#d8f0e7,#f6dfe7);border-color:#5c8a7ce6}.calendar{margin-top:6px;border:1px solid rgba(34,64,58,.1);border-radius:12px;overflow:hidden;width:100%;background:#fdfefe}.calendar table{width:100%;border-collapse:collapse;min-width:0;table-layout:fixed}.calendar th{background:#f3f7f6;color:#5c8a7c;font-weight:600;padding:6px;text-align:center;font-size:12px}.calendar td{text-align:center;padding:10px 0;cursor:pointer;transition:background .12s ease,color .12s ease,transform .12s ease;border:1px solid rgba(34,64,58,.05)}.calendar th,.calendar td{width:14.285%}.calendar-day.out-period{color:#22403a4d;cursor:not-allowed}.calendar-day.in-period:hover{background:#5c8a7c2e;transform:translateY(-1px)}.calendar-day.selected{background:linear-gradient(135deg,#d8f0e7,#f6dfe7);color:#22403a;font-weight:700}.calendar-day.today{outline:1px dashed rgba(92,138,124,.7);outline-offset:-4px}.autocomplete{position:relative}.autocomplete-list{position:absolute;left:0;right:0;top:calc(100% + 4px);background:#0f162d;border:1px solid rgba(255,255,255,.12);border-radius:12px;box-shadow:0 10px 30px #00000059;max-height:200px;overflow-y:auto;z-index:5}.autocomplete-item{width:100%;text-align:left;padding:8px 10px;background:transparent;color:#f2f5ff;border:none;cursor:pointer}.autocomplete-item:hover{background:#4af2c51f}.error-text{margin-top:8px;color:#ff9ca0;background:#ff9ca014;border:1px solid rgba(255,156,160,.3);padding:8px 10px;border-radius:10px}.confetti-banner{position:fixed;top:20px;left:50%;transform:translate(-50%);z-index:20;pointer-events:none;text-align:center}.confetti-message{background:#1f8ff5e6;color:#0b1021;padding:10px 16px;border-radius:999px;font-weight:700;margin-bottom:6px;box-shadow:0 8px 20px #00000040}.confetti-field{display:grid;grid-template-columns:repeat(8,auto);gap:4px}.confetti-piece{display:inline-block;animation:float 1.2s ease-in-out infinite}.confetti-piece:nth-child(odd){animation-duration:1.4s}.confetti-piece:nth-child(3n){animation-duration:1.6s}@keyframes float{0%{transform:translateY(0) rotate(0)}50%{transform:translateY(6px) rotate(8deg)}to{transform:translateY(0) rotate(0)}}.floating-buttons{position:fixed;right:16px;top:10px;display:flex;flex-direction:column;gap:8px;z-index:14}.avatar-button{width:48px;height:48px;border-radius:50%;font-size:22px;background:linear-gradient(135deg,#d8f0e7,#f6dfe7);box-shadow:0 10px 24px #22403a1f;padding:0}.progress{width:100%;height:12px;background:#ffffff0f;border-radius:999px;overflow:hidden;border:1px solid rgba(255,255,255,.08);margin:6px 0}.progress-bar{height:100%;background:linear-gradient(135deg,#4af2c5,#1f8ff5)}.drawer{position:fixed;top:0;right:-360px;width:340px;height:100vh;background:#fff;border-left:1px solid rgba(34,64,58,.12);box-shadow:-10px 0 30px #22403a24;padding:16px;overflow-y:auto;transition:right .2s ease;z-index:15}.drawer.open{right:0}.drawer-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.drawer h3{margin:0}.app-footer{margin-top:32px;text-align:center;font-size:12px;letter-spacing:.04em}.summary-table{margin-top:12px;border:1px solid rgba(34,64,58,.12);border-radius:12px;overflow:hidden}.summary-grid{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start}.summary-left{flex:1 1 320px}.summary-right{flex:1.6 1 420px}.summary-left .pill{margin-top:4px}.summary-left .progress{margin-top:6px}.stat-card h3{margin:6px 0 0}.summary-head,.summary-row{display:grid;grid-template-columns:2fr 1fr .1fr 1fr .1fr 1fr;align-items:center}.summary-head{background:#eaf5f0}.summary-head>div:first-child{height:100%;border-right:1px solid rgba(34,64,58,.08)}.summary-head>div{color:#22403a;padding:10px;font-weight:700;border-right:1px solid rgba(34,64,58,.08)}.summary-head>div:last-child{border-right:none}.summary-row{background:#fff;color:#22403a}.summary-row:nth-child(2n){background:#f9fbfa}.summary-row>div{padding:10px 12px;border-right:1px solid rgba(34,64,58,.06)}.summary-row>div:last-child{border-right:none}.summary-row .op-col{padding:0 6px;border-right:none;border-left:none;text-align:center;color:#b33a3a}.summary-row-strong{font-weight:700;border-bottom:4px solid rgba(34,64,58,.08)}.summary-row.spacer>div{padding:12px;background:transparent;border:none}.summary-label{font-weight:700}.minus-sign{color:#b33a3a;font-weight:900}.mini-summary{position:fixed;right:12px;top:12px;width:220px;z-index:12;opacity:1;transition:opacity .2s ease,transform .2s ease}.mini-summary.minimized{width:45px}.mini-summary .card{padding:12px}.mini-summary.minimized .card{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:220px;padding:12px 8px}.mini-summary-header{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:8px}.mini-summary-header .small-label{margin:0}.mini-summary-toggle{width:28px;height:28px;padding:0;margin:0;border-radius:999px;font-size:18px;line-height:1}.mini-summary.minimized .mini-summary-header{flex-direction:column;align-items:center;justify-content:center;gap:12px;margin-bottom:0}.mini-summary.minimized .mini-summary-header .small-label{writing-mode:vertical-rl;transform:rotate(180deg);letter-spacing:.18em}.mini-summary.minimized .mini-summary-toggle{margin:0}.mini-summary.minimized .mini-summary-collapsed{display:none}.mini-summary-action{width:100%;margin-right:0;justify-content:center}.mini-row{display:flex;align-items:center;justify-content:space-between;margin:6px 0}.mini-row strong{color:#22403a}.summary-invoice{font-size:24px;font-weight:800}.table-wrapper{overflow:auto;border-radius:12px;border:1px solid rgba(34,64,58,.08)}.config-table table{min-width:0}.config-table .input-minutes{width:50px}.config-table .input-price{width:75px}.config-table .small-button{padding:6px 10px;font-size:12px}table{width:100%;border-collapse:collapse;min-width:600px}th,td{padding:10px 12px;text-align:left}th{background:#f3f7f6;color:#5c8a7c;position:sticky;top:0}tbody tr:nth-child(2n){background:#f9fbfa}input,select,button{font-family:inherit}input,select{width:100%;padding:10px;border-radius:12px;border:1px solid rgba(34,64,58,.12);background:#fdfefe;color:#22403a}select option{background:#fff;color:#22403a}button{border:none;border-radius:12px;padding:12px 18px;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;margin-right:8px;margin-top:6px}button:last-child{margin-right:0}button.primary{background:linear-gradient(135deg,#a6e3d4,#f7c6d0);color:#22403a;font-weight:700;box-shadow:0 10px 24px #22403a1f}button.config{background:linear-gradient(135deg,#c7e6ff,#ffe4f2);color:#22403a;font-weight:700;box-shadow:0 10px 24px #22403a1f}button.ghost{background:#5c8a7c1f;color:#22403a;border:1px solid rgba(92,138,124,.25)}button.danger{color:#612e33;border:1px solid rgba(226,142,151,.8);background:linear-gradient(135deg,#f7c6d0,#f0a6b2);box-shadow:0 8px 18px #e28e9740}button:hover{transform:translateY(-1px)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin:12px 0}label{display:flex;flex-direction:column;gap:4px;font-size:14px;color:#005f63}.status,.hero-actions{display:flex;gap:8px;flex-wrap:wrap}.pill{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:#22403a1f;color:#22403a;font-size:13px}.pill-green{background:#a6e3d499;color:#1f3b33}.pill-red{background:#b33a3a1f;color:#6b1f1f}.pill-button{margin-left:8px;padding:4px 8px;border-radius:8px;display:inline-flex;align-items:center;gap:6px}.summary{background:linear-gradient(135deg,#ffffff0a,#ffffff03)}.summary.accent{border-color:#4af2c580;background:linear-gradient(135deg,#4af2c514,#1f8ff514)}.auth-panel{max-width:560px;margin:80px auto}.auth-header{align-items:flex-start}.auth-switch{display:flex;gap:8px;align-items:center}.auth-grid label{min-width:220px}.auth-actions{justify-content:flex-end}.summary-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.summary-invoice-meta{margin-top:10px;color:#b8c2d8}.locked-notice{border:1px dashed rgba(255,255,255,.3);background:#ffffff05;padding:12px;border-radius:12px}.actions{display:flex;gap:6px}.summary-chips{display:flex;gap:8px;flex-wrap:wrap}@media(max-width:720px){.hero,.panel-header{flex-direction:column;align-items:flex-start}table{min-width:100%}}
