:root{font-family:Inter,Segoe UI,Arial,sans-serif;color:#1b2d41;background:#f4f7fa;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}h1,h2,h3,p{margin-top:0}h1{font-size:1.85rem;line-height:1.2}h2{font-size:1.15rem}h3{font-size:1.08rem}p{line-height:1.5}small{font-size:.8rem}.shell{display:flex;min-height:100vh}.sidebar{width:244px;background:#17365d;color:#fff;display:flex;flex-direction:column;flex-shrink:0}.brand{height:112px;display:flex;align-items:center;gap:9px;padding:20px 22px;border-bottom:1px solid #ffffff1e}.brand img{width:112px;filter:brightness(0) invert(1)}.brand span{font-size:.61rem;font-weight:800;letter-spacing:.12em;line-height:1.3;border-left:1px solid #ffffff56;padding-left:10px}.sidebar nav{padding:25px 12px;display:grid;gap:6px}.sidebar nav button{border:0;background:none;color:#c7d5e5;display:flex;align-items:center;gap:13px;text-align:left;padding:13px 15px;border-radius:11px;font-size:.91rem;font-weight:600}.sidebar nav button:hover,.sidebar nav button.active{background:#2d74b4;color:#fff}.sidebar-bottom{margin-top:auto;border-top:1px solid #ffffff25;padding:18px 14px 22px;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:.85rem}.sidebar-bottom span{overflow:hidden;text-overflow:ellipsis}.sidebar-bottom small{display:block;color:#a9bed3;margin-top:4px}.sidebar-bottom button{background:none;border:0;color:#fff;padding:6px}.main{flex:1;min-width:0;padding:31px clamp(20px,3vw,48px) 60px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:27px}.topbar h1{margin:6px 0 0;color:#17365d}.eyebrow{font-size:.68rem;font-weight:800;letter-spacing:.14em;color:#6d8199}.top-actions{display:flex;align-items:center;gap:22px}.today{text-transform:capitalize;font-size:.83rem;color:#6d8199}.primary,.outline,.text-btn,.icon-btn,.back{display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:9px;font-weight:700}.primary{background:#2e71af;border:1px solid #2e71af;color:#fff;padding:11px 15px;box-shadow:0 5px 13px #2e71af25}.primary:hover{background:#205c92}.outline{background:#fff;border:1px solid #d5e1ec;color:#244e78;padding:10px 13px}.outline:hover{border-color:#2e71af}.text-btn,.back{border:0;background:none;color:#2e71af;padding:7px}.back{margin-bottom:15px}.icon-btn{border:0;background:#f0f4f8;color:#365371;padding:7px}.full{width:100%}.card,.stat,.project-tile,.detail-banner{background:#fff;border:1px solid #e2eaf1;border-radius:15px;box-shadow:0 4px 20px #17365d0a}.card{padding:22px}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:23px}.stat-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.stat{padding:20px;display:flex;flex-direction:column;align-items:flex-start;gap:9px}.stat small{color:#708094;font-size:.85rem}.stat strong{color:#17365d;font-size:1.75rem;line-height:1.15}.round-icon{display:inline-flex;align-items:center;justify-content:center;background:#e9f2fa;color:#2e71af;border-radius:11px;width:43px;height:43px;flex-shrink:0}.round-icon.orange{background:#fff1dc;color:#bc7521}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:19px}.section-head h2{margin:0;color:#17365d}.section-head p{font-size:.87rem;color:#798b9f;margin:5px 0 0}.list-row{display:flex;align-items:center;gap:12px;width:100%;border:0;border-bottom:1px solid #edf1f5;background:#fff;text-align:left;padding:12px 0;color:#1b2d41}.list-row:last-child{border-bottom:0}.list-row>span:nth-child(2){flex:1;min-width:0}.list-row strong,.list-row small{display:block}.list-row strong{font-size:.9rem}.list-row small{margin-top:5px;color:#8392a1}.list-row b{font-size:.86rem;color:#17365d}.list-row:hover strong{color:#2e71af}.empty{padding:33px 12px;text-align:center;color:#8b9aaa}.empty svg{color:#b0c0cf}.empty p{margin:9px 0 0;font-size:.87rem}.calendar-card{padding-bottom:0}.calendar-toolbar{margin-bottom:21px}.calendar-controls{display:flex;gap:10px;align-items:center}.calendar-controls select,.editor input,.editor select,.editor textarea,.login-card input{border:1px solid #d5e1ec;background:#fff;border-radius:9px;padding:10px 12px;min-height:41px;color:#263a4e}.calendar-controls select{min-width:195px;max-width:260px}.segmented{display:flex;background:#edf2f7;padding:3px;border-radius:10px}.segmented button{border:0;background:none;border-radius:8px;padding:8px 12px;color:#59708a;font-size:.83rem;font-weight:700}.segmented button.on{background:#fff;color:#2e71af;box-shadow:0 2px 7px #17365d1c}.datebar{display:flex;align-items:center;justify-content:space-between;margin-bottom:19px}.date-nav{display:flex;align-items:center;gap:10px}.date-nav button{border:1px solid #dce5ed;background:#fff;border-radius:8px;color:#355474;min-width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center}.date-nav .primary{color:#fff;border-color:#2e71af;height:auto}.date-nav strong{text-transform:capitalize;font-size:.94rem;color:#17365d;min-width:190px;text-align:center}.week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid #e1e9f0;border-radius:12px;overflow:hidden}.day-cell{min-width:0;min-height:260px;background:#fff;border:0;border-right:1px solid #e1e9f0;text-align:left;display:flex;flex-direction:column;padding:13px;transition:background .15s}.day-cell:last-child{border-right:0}.day-cell:hover{background:#f8fbfd}.day-cell.selected{background:#f5faff}.day-heading{display:flex;flex-direction:column;color:#8293a4;font-size:.77rem;text-transform:capitalize;gap:3px}.day-heading strong{font-size:1.23rem;color:#17365d}.is-today .day-heading strong{display:inline-flex;justify-content:center;align-items:center;width:27px;height:27px;background:#2e71af;color:#fff;border-radius:50%}.day-events{display:grid;gap:7px;margin-top:15px;overflow:hidden}.event{display:block;background:#e7f1fa;border-left:3px solid #2e71af;padding:7px;border-radius:4px;overflow:hidden}.event.absent{background:#f4f4f4;border-color:#b2b2b2}.event b,.event small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event b{font-size:.74rem;color:#294966}.event small{font-size:.68rem;color:#668198;margin-top:2px}.day-add{margin-top:auto;padding-top:9px;display:flex;align-items:center;gap:3px;color:#2e71af;font-size:.75rem;font-weight:700}.calendar-summary{display:flex;gap:35px;border-top:1px solid #e4ecf3;margin-top:18px;padding:17px 0;font-size:.86rem;color:#74879a}.calendar-summary span{display:flex;align-items:center;gap:6px}.calendar-summary svg{color:#2e71af}.calendar-summary strong{color:#17365d}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid #e1e9f0;border-radius:12px;overflow:hidden}.month-head{padding:9px;text-align:center;background:#f5f8fb;color:#6c8298;font-size:.78rem;font-weight:700}.month-cell{background:#fff;border:0;border-top:1px solid #e1e9f0;border-right:1px solid #e1e9f0;min-height:106px;padding:9px;text-align:left;display:flex;flex-direction:column;align-items:stretch;gap:3px;min-width:0}.month-cell:nth-child(7n){border-right:0}.month-cell:hover{background:#f5faff}.month-cell.outside{color:#b8c2cc;background:#fbfcfd}.month-cell>strong{font-size:.8rem;margin-bottom:4px}.month-cell.is-today>strong{color:#2e71af}.month-cell span{background:#e7f1fa;border-radius:4px;color:#2e71af;font-size:.7rem;padding:3px 5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.month-cell small{color:#7c90a3}.search{border:1px solid #dce6ef;border-radius:9px;display:flex;align-items:center;gap:9px;padding:0 12px;max-width:360px;margin-bottom:20px;color:#8aa0b3}.search input{border:0;outline:0;padding:11px 0;width:100%;font-size:.87rem}.cards-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.project-tile{text-align:left;padding:19px;cursor:pointer}.project-tile:hover{border-color:#95b9d7;box-shadow:0 6px 20px #17365d16}.tile-top,.tile-foot{display:flex;align-items:center;justify-content:space-between}.project-tile h3{margin:15px 0 6px;color:#17365d}.project-tile p{margin:0 0 9px;color:#576d82;font-size:.85rem}.project-tile small{color:#8798a9}.tile-foot{border-top:1px solid #e8edf1;margin-top:19px;padding-top:14px;color:#668199;font-size:.8rem}.status{display:inline-flex;border-radius:99px;padding:5px 9px;font-size:.73rem;font-weight:700;background:#eaf5e9;color:#427548;white-space:nowrap}.status.pending,.status.planned{background:#fff4e2;color:#b57618}.status.closed{background:#ecf0f4;color:#738398}.status.paid{background:#eaf5e9;color:#427548}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;min-width:750px}th{text-align:left;color:#8293a3;font-size:.75rem;font-weight:700;padding:13px 11px;background:#f6f9fb}td{border-bottom:1px solid #eaf0f5;padding:14px 11px;font-size:.85rem}tbody tr:hover{background:#f8fbfd}tbody tr[style],tbody tr:has(>td:last-child>svg){cursor:pointer}td strong{color:#1f3e5b}.file-link{border:0;background:none;color:#2e71af;padding:3px 8px 3px 0;font-weight:700;font-size:.78rem}.file-link:hover{text-decoration:underline}.payment-summary{display:flex;align-items:center;gap:32px;border:1px solid #e4edf4;background:#f8fbfd;border-radius:12px;padding:16px;margin-bottom:20px}.payment-summary div{display:flex;flex-direction:column;gap:4px}.payment-summary small{color:#7990a3}.payment-summary strong{font-size:1.22rem;color:#17365d}.payment-summary .outline{margin-left:auto}.detail-banner{display:flex;align-items:center;gap:17px;padding:22px;margin-bottom:22px}.detail-banner>div:nth-child(2){flex:1}.detail-banner h2{margin:0 0 4px;color:#17365d;font-size:1.35rem}.detail-banner p{margin:0;color:#7990a3;font-size:.87rem}.avatar{background:#dcecf8;color:#2e71af;border-radius:12px;width:50px;height:50px;display:inline-flex;align-items:center;justify-content:center;font-weight:800}.timeline-row{display:grid;grid-template-columns:20px 115px 1fr auto;align-items:start;gap:9px;padding:15px 0;border-bottom:1px solid #edf2f6}.timeline-row:last-child{border:0}.timeline-dot{width:11px;height:11px;border:3px solid #2e71af;border-radius:50%;margin-top:3px}.timeline-row small{color:#8a9cac}.timeline-row strong{display:block;color:#244761;font-size:.88rem;margin-bottom:5px}.timeline-row b{color:#17365d;font-size:.86rem}.detail-list{display:grid;grid-template-columns:110px 1fr;gap:12px;font-size:.86rem}.detail-list dt{color:#8192a1}.detail-list dd{margin:0;color:#29465e}.notice{display:flex;justify-content:space-between;align-items:center;gap:10px;background:#ecf5fb;border:1px solid #b9d9ef;color:#215780;border-radius:9px;padding:10px 13px;margin-bottom:16px;font-size:.84rem}.notice button{background:none;border:0;color:inherit}.modal-backdrop{position:fixed;inset:0;background:#10253bb5;display:flex;align-items:center;justify-content:center;padding:18px;z-index:10}.dialog{background:#fff;border-radius:16px;width:min(540px,100%);max-height:92vh;overflow:auto;box-shadow:0 18px 60px #071c3680}.dialog-head{padding:19px 22px;border-bottom:1px solid #e5edf3;display:flex;align-items:center;justify-content:space-between}.dialog-head h2{margin:0;color:#17365d;font-size:1.15rem}.editor{padding:20px 22px 24px;display:grid;gap:15px}.editor label,.login-card label{display:flex;flex-direction:column;gap:6px;color:#35526c;font-size:.84rem;font-weight:700}.editor input,.editor select,.editor textarea{width:100%;font-size:.88rem;font-weight:400}.editor textarea{resize:vertical}.editor input[type=file]{padding:8px}.editor small{font-weight:400;color:#6c8295}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-error{color:#b22b2b;font-size:.84rem;margin:0}.hint{font-size:.8rem;color:#7990a1;margin:0}.day-dialog{padding:20px}.day-list>div:not(.empty){display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid #e8edf2;padding:11px 0}.day-list strong,.day-list small{display:block}.day-list small{color:#8496a7;margin-top:4px}.day-dialog>.primary{margin-top:20px}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:linear-gradient(130deg,#17365d,#275f91 60%,#bed7ec)}.login-card{width:min(410px,100%);padding:35px;background:#fff;border-radius:18px;box-shadow:0 24px 70px #06172b50}.login-card img{width:175px;margin-bottom:36px}.login-card h1{margin:8px 0;color:#17365d}.login-card p{color:#7b8da0;font-size:.9rem}.login-card form{display:grid;gap:15px;margin-top:24px}.login-card button{margin-top:6px}.setup,.center{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:25px;color:#284662}.setup img{width:190px;margin-bottom:25px}.setup p{max-width:560px}.setup code{background:#e7eff5;border-radius:4px;padding:2px 4px}.setup button{border:0;color:#fff;background:#2e71af;border-radius:8px;padding:10px 16px}@media(max-width:1150px){.week-grid{overflow-x:auto}.day-cell{min-width:135px}.cards-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.today{display:none}}@media(max-width:850px){.sidebar{width:72px}.brand{height:85px;padding:13px}.brand img{width:46px}.brand span,.sidebar nav button:not(.active),.sidebar-bottom span{display:none}.sidebar nav{padding:14px 8px}.sidebar nav button{justify-content:center;padding:13px}.sidebar-bottom{justify-content:center}.main{padding:20px}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.two-col{grid-template-columns:1fr}.calendar-toolbar{align-items:flex-start;flex-direction:column}.month-cell{min-height:75px}}@media(max-width:580px){.shell{display:block}.sidebar{width:100%;height:auto;display:block;position:sticky;top:0;z-index:5}.brand{display:none}.sidebar nav{display:flex;justify-content:space-around;padding:6px}.sidebar nav button,.sidebar nav button:not(.active){display:flex;flex-direction:column;gap:2px;padding:5px;font-size:.62rem;min-width:56px}.sidebar nav button svg{width:18px}.sidebar-bottom{display:none}.main{padding:17px 12px 40px}.topbar{align-items:flex-start}.topbar h1{font-size:1.35rem}.top-actions .primary{font-size:0;padding:9px}.top-actions .primary svg{width:20px}.stat-grid{gap:8px}.stat{padding:13px}.stat strong{font-size:1.3rem}.card{padding:15px}.section-head{align-items:flex-start}.section-head .primary{font-size:.75rem;padding:9px}.cards-grid{grid-template-columns:1fr}.calendar-controls{width:100%;justify-content:space-between}.calendar-controls select{min-width:0;width:48%}.date-nav strong{min-width:0;font-size:.8rem}.calendar-summary{flex-wrap:wrap;gap:8px}.month-cell{padding:5px;min-height:65px}.month-cell span{display:none}.month-head{font-size:.65rem}.payment-summary{gap:12px;flex-wrap:wrap}.payment-summary .outline{margin-left:0}.form-row{grid-template-columns:1fr}}.payment-filters{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px}.payment-filters label{display:flex;align-items:center;gap:7px;color:#526d85;font-size:.83rem;font-weight:700}.payment-filters input,.payment-filters select{border:1px solid #d5e1ec;background:#fff;border-radius:8px;padding:9px;color:#263a4e;max-width:230px}.event.planned{background:#fff3df;border-color:#d59232}.event.planned b{color:#8b5c22}.login-card .login-success{color:#216949;background:#eaf8ef;border:1px solid #bae2c6;border-radius:8px;padding:10px 12px;margin:0}.login-card .outline{margin-left:0}.password-action{white-space:nowrap;margin-left:0}@media(max-width:580px){.top-actions{gap:8px}.password-action{padding:9px}.password-action span{display:none}}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.settings-grid .card{min-width:0}.settings-grid .editor{padding:0}.settings-users,.settings-success{grid-column:1/-1}.settings-success{background:#eaf8ef;border:1px solid #bae2c6;border-radius:9px;color:#216949;padding:12px;margin:0}.settings-grid .section-head{margin-bottom:17px}@media(max-width:850px){.settings-grid{grid-template-columns:1fr}.settings-users,.settings-success{grid-column:auto}}@media(max-width:580px){.sidebar nav button,.sidebar nav button:not(.active){min-width:0;flex:1;padding:5px 1px;font-size:.56rem}}
