:root{--ink:#17212b;--muted:#6c7680;--line:#e8ecf0;--soft:#f6f7f9;--orange:#ff5a1f;--orange-soft:#fff0e9;--red:#e83f4b;--red-soft:#fff0f1;--green:#16a36a;--green-soft:#eaf8f2;--blue:#3478f6;--purple:#7c5cfc;--white:#fff;--black:#111820}*{box-sizing:border-box}body{margin:0;background:#fff;color:var(--ink);font-family:Poppins,Arial,sans-serif}button,input,select,textarea{font:inherit}.hidden{display:none!important}.login-page{min-height:100vh;padding:24px;display:grid;place-items:center;background:radial-gradient(circle at 82% 10%,#fff0e9 0 12%,transparent 33%),#fff}.login-brand{position:absolute;left:28px;top:25px;display:flex;align-items:center;gap:10px}.login-brand strong,.side-brand strong{font-size:20px}.login-brand strong span,.side-brand strong span{color:var(--orange)}.bolt{display:grid;place-items:center;width:46px;height:46px;border-radius:15px;background:var(--orange);color:#fff}.login-card{width:min(430px,100%);padding:28px;border:1px solid var(--line);border-radius:24px;box-shadow:0 25px 70px rgba(17,24,32,.1)}.login-card small,.topbar small{font-weight:800;letter-spacing:1.2px;color:var(--muted)}.login-card h1{font-size:38px;line-height:1.13;margin:14px 0 8px}.login-card p{color:var(--muted);margin:0 0 24px}.login-card label,.form-grid label{display:block;font-size:12px;font-weight:700;margin-top:14px}.login-card input,.form-grid input,.form-grid select,.form-grid textarea{width:100%;margin-top:7px;border:1px solid var(--line);border-radius:13px;padding:13px;background:#fff;color:var(--ink)}.form-grid textarea{min-height:90px;resize:vertical}.primary{border:0;border-radius:13px;background:var(--orange);color:#fff;font-weight:800;padding:14px 18px;cursor:pointer}.login-card .primary{width:100%;margin-top:18px}.form-error{color:var(--red);font-size:12px;margin-top:10px}.app{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.sidebar{position:sticky;top:0;height:100vh;border-right:1px solid var(--line);padding:24px 17px;display:flex;flex-direction:column}.side-brand{display:flex;align-items:center;gap:9px;padding:0 8px 24px}.side-brand .bolt{width:40px;height:40px}.sidebar nav{display:grid;gap:6px}.nav-button{display:flex;align-items:center;gap:12px;border:0;background:transparent;padding:13px 14px;border-radius:13px;color:var(--muted);font-weight:700;text-align:left;cursor:pointer}.nav-button.active{background:var(--black);color:#fff}.logout{margin-top:auto;border:0;background:var(--red-soft);color:var(--red);font-weight:800;padding:13px;border-radius:13px;cursor:pointer}.topbar{height:104px;border-bottom:1px solid var(--line);padding:20px 30px;display:flex;align-items:center;justify-content:space-between}.topbar h1{margin:3px 0 0;font-size:25px}.user-chip{border:1px solid var(--line);border-radius:14px;padding:9px 13px;font-size:12px;font-weight:700}.content{padding:26px 30px 80px;max-width:1400px}.cards{display:grid;grid-template-columns:repeat(5,minmax(145px,1fr));gap:12px}.stat{border:1px solid var(--line);border-radius:18px;padding:17px;background:#fff}.stat b{display:block;font-size:27px}.stat span{font-size:11px;color:var(--muted);font-weight:600}.stat.alert{background:var(--red-soft);border-color:#ffd8dc;color:var(--red)}.budget{margin:16px 0 28px;background:var(--black);color:#fff;border-radius:20px;padding:21px;display:flex;justify-content:space-between;align-items:center}.budget small{color:#9ba3ab}.budget b{font-size:30px}.section-head{display:flex;align-items:center;justify-content:space-between;margin:22px 0 12px}.section-head h2{margin:0;font-size:19px}.tasks{display:grid;gap:10px}.task{position:relative;overflow:hidden;display:grid;grid-template-columns:1fr auto;gap:14px;border:1px solid var(--line);border-radius:17px;padding:15px 17px;background:#fff;cursor:pointer}.task:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--type)}.task.late{background:#fffafa;border-color:#ffcdd2}.task.done{opacity:.66}.task h3{font-size:14px;margin:7px 0}.meta{display:flex;gap:6px;flex-wrap:wrap}.pill{display:inline-block;border-radius:9px;padding:4px 8px;font-size:10px;font-weight:800;background:var(--soft);color:var(--muted)}.pill.type{background:color-mix(in srgb,var(--type) 12%,white);color:var(--type)}.pill.red{background:var(--red-soft);color:var(--red)}.pill.green{background:var(--green-soft);color:var(--green)}.empty{text-align:center;background:var(--soft);border-radius:18px;padding:35px;color:var(--muted)}.groups{display:grid;gap:26px}.group h2{font-size:20px}.calendar-head{display:flex;justify-content:space-between;align-items:center}.calendar-controls button{border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 12px}.calendar{margin-top:15px;display:grid;grid-template-columns:repeat(7,1fr);border:1px solid var(--line);border-radius:18px;overflow:hidden}.cal-week{padding:10px;text-align:center;font-size:11px;font-weight:800;color:var(--muted);background:var(--soft)}.cal-day{min-height:120px;border-top:1px solid var(--line);border-right:1px solid var(--line);padding:9px}.cal-day.muted{background:#fafbfc}.day-num{font-size:12px;font-weight:800}.mini-task{margin-top:5px;padding:5px 7px;border-left:3px solid var(--type);background:var(--soft);border-radius:6px;font-size:9px;cursor:pointer}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:18px}table{border-collapse:collapse;width:100%;min-width:850px}th,td{text-align:left;padding:13px;border-bottom:1px solid var(--line);font-size:12px}th{background:var(--soft);color:var(--muted);font-size:10px}.status-on{color:var(--green);font-weight:800}.status-off{color:var(--muted)}.actions{display:flex;gap:7px}.secondary,.danger{border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 11px;font-size:11px;font-weight:700;cursor:pointer}.danger{color:var(--red);border-color:#ffd8dc}.chart{display:grid;gap:12px;border:1px solid var(--line);border-radius:18px;padding:18px}.bar-row{display:grid;grid-template-columns:110px 1fr 35px;align-items:center;gap:10px;font-size:11px}.bar{height:9px;background:var(--soft);border-radius:6px;overflow:hidden}.bar i{display:block;height:100%;background:var(--type)}.team-grid{display:grid;grid-template-columns:repeat(2,minmax(250px,1fr));gap:12px}.member{border:1px solid var(--line);border-radius:18px;padding:17px}.member h3{margin:0}.member p{font-size:12px;color:var(--muted)}dialog{width:min(610px,calc(100% - 24px));max-height:90vh;border:0;border-radius:22px;padding:0;box-shadow:0 30px 80px rgba(0,0,0,.25)}dialog::backdrop{background:rgba(12,18,25,.48)}.modal-close{position:absolute;right:14px;top:12px;border:0;background:var(--soft);width:38px;height:38px;border-radius:12px;font-size:22px;cursor:pointer}.modal-inner{padding:25px}.modal-inner h2{margin:0 45px 5px 0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 13px}.form-grid .full{grid-column:1/-1}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.toast{position:fixed;right:20px;bottom:20px;max-width:360px;background:var(--black);color:#fff;border-radius:13px;padding:13px 16px;opacity:0;transform:translateY(15px);pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:none}.mobile-nav{display:none}
@media(max-width:1050px){.cards{grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){.app{display:block}.sidebar{display:none}.topbar{height:auto;padding:18px}.content{padding:18px 14px 100px}.cards{grid-template-columns:repeat(2,1fr)}.user-chip{display:none}.calendar{grid-template-columns:repeat(7,minmax(42px,1fr))}.cal-day{min-height:85px;padding:5px}.mini-task{font-size:0;width:8px;height:8px;border:0;border-radius:50%;padding:0;display:inline-block}.team-grid{grid-template-columns:1fr}.mobile-nav{position:fixed;display:flex;left:0;right:0;bottom:0;background:#fff;border-top:1px solid var(--line);z-index:5;padding:7px 4px max(8px,env(safe-area-inset-bottom))}.mobile-nav .nav-button{flex:1;display:grid;place-items:center;gap:1px;padding:7px 2px;font-size:9px}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.login-brand{position:static;margin-bottom:25px}.login-page{display:block}.login-card{box-shadow:none;padding:20px}.login-card h1{font-size:33px}}

