:root{--ink:#151a22;--sub:#687182;--orange:#fa8b26;--orange2:#fbb86b;--bg:#f5f6f8;--line:#e6e8ed;--paper:#fff;--dark:#11161e;--green:#179867;--red:#d84745;--blue:#3982db;--radius:17px;--shadow:0 10px 35px rgba(22,34,48,.045);font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;color:var(--ink);color-scheme:light}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;-webkit-font-smoothing:antialiased}body{background:var(--bg);font-size:14px}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a{color:inherit;text-decoration:none}svg{flex-shrink:0;vertical-align:middle} .icon{width:19px;height:19px;stroke:currentColor;stroke-width:1.85;fill:none;stroke-linecap:round;stroke-linejoin:round}
.boot{height:100svh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;color:var(--sub)}.boot img{width:200px;background:#080808;border-radius:20px;padding:10px}
.shell{display:flex;min-height:100svh}.sidebar{width:248px;position:fixed;inset:0 auto 0 0;background:#11161e;color:#f5f5f5;display:flex;flex-direction:column;z-index:20}.brand{padding:19px 18px 15px;border-bottom:1px solid #292d35}.brand img{display:block;width:175px;max-height:75px;object-fit:contain;object-position:left center}.brand-sub{font-size:10px;color:#9fa6b4;letter-spacing:1.65px;font-weight:700;text-transform:uppercase;margin:3px 0 0 9px}.nav{padding:16px 12px;overflow:auto;flex:1}.nav-heading{font-size:10px;letter-spacing:1.4px;color:#858c99;text-transform:uppercase;font-weight:800;padding:16px 13px 7px}.nav-btn{display:flex;gap:13px;align-items:center;border:0;text-align:left;width:100%;background:transparent;color:#b8c0ce;padding:12px 14px;border-radius:11px;margin:2px 0;font-weight:570;transition:background .15s}.nav-btn:hover{background:#252c36;color:#fff}.nav-btn.active{background:#302b24;color:#ffae57}.nav-btn.active:before{content:'';width:3px;height:23px;background:var(--orange);border-radius:8px;position:absolute;left:0}.nav-btn .pill-count{margin-left:auto;padding:2px 6px;border-radius:8px;background:#303943;color:#eaeef4;font-size:10px}.side-footer{border-top:1px solid #2b3039;padding:17px;display:flex;align-items:center;gap:10px}.avatar{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:12px;background:#fce4ce;color:#a34c05;font-weight:800;flex:none}.side-footer .avatar{background:#313940;color:#faad6a}.side-name{font-size:12px;font-weight:700}.side-role{font-size:11px;color:#8993a1;margin-top:3px}.logout-small{margin-left:auto;background:transparent;border:0;color:#96a3b2;padding:8px}
.main{margin-left:248px;min-width:0;width:calc(100% - 248px)}.topbar{height:78px;background:rgba(255,255,255,.91);border-bottom:1px solid #e9ebf0;position:sticky;z-index:10;top:0;display:flex;align-items:center;justify-content:space-between;padding:0 36px;backdrop-filter:blur(12px)}.top-t{font-size:20px;font-weight:780;letter-spacing:-.5px}.top-k{font-size:11px;color:var(--sub);margin-top:4px}.top-right{display:flex;align-items:center;gap:12px}.top-date{font-weight:650;color:#596574;font-size:12px}.round-btn{width:37px;height:37px;background:#f6f7f9;border:1px solid var(--line);border-radius:12px;display:inline-grid;place-items:center;color:#526174}.round-btn:hover{background:#eceff3}.content{max-width:1480px;margin:0 auto;padding:28px 35px 90px}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;margin-bottom:23px}.eyebrow{color:var(--orange);font-size:11px;font-weight:850;letter-spacing:1.4px;text-transform:uppercase}.page-head h1{font-size:27px;letter-spacing:-1px;margin:5px 0 5px;line-height:1.2}.muted{color:var(--sub)}.subtitle{margin:0;font-size:13px;color:var(--sub)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #dfe3e9;background:#fff;color:var(--ink);padding:10px 15px;font-weight:700;border-radius:12px;line-height:1.2;min-height:41px;white-space:nowrap}.btn .icon{width:17px;height:17px}.btn.primary{color:#24180d;background:var(--orange);border-color:var(--orange)}.btn.primary:hover{background:#f9a24e}.btn.outline{background:transparent}.btn.dark{background:#1c232d;color:#fff;border-color:#1c232d}.btn.soft{background:#fff3e7;color:#ad5d0e;border:1px solid #ffead7}.btn.danger{color:#ac3535;border-color:#f4dede;background:#fff6f6}.btn.tiny{font-size:11px;min-height:30px;padding:7px 9px;border-radius:9px}.btn.icon-only{padding:9px;width:41px}.btns{display:flex;gap:8px;flex-wrap:wrap}.card{background:var(--paper);border:1px solid #e8eaef;border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.card + .card{margin-top:14px}.card-title{font-size:15px;font-weight:790;margin:0}.card-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:15px}.arrow-link{color:#e77e18;font-size:12px;font-weight:750;border:0;background:none;display:inline-flex;align-items:center;gap:3px}.section-title{font-size:15px;font-weight:780;display:flex;align-items:center;gap:8px;margin:0 0 14px}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin:0 0 20px}.kpi{padding:19px 20px;border-radius:16px;background:#fff;border:1px solid var(--line);min-height:115px}.kpi .kpi-top{display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:700;color:var(--sub)}.kpi strong{display:block;font-size:31px;letter-spacing:-1px;margin-top:12px}.kpi svg{color:var(--orange)}.kpi.orange{background:#1a2029;color:white;border-color:#1a2029}.kpi.orange .kpi-top{color:#bec6cf}.kpi.orange strong{color:var(--orange)}.home-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr);gap:18px}.col-stack{display:flex;flex-direction:column;gap:18px}.welcome{background:linear-gradient(112deg,#171d26,#282b2d 69%,#3a2c20);color:#fff;border-radius:19px;padding:26px 29px;margin-bottom:19px;position:relative;overflow:hidden;min-height:165px}.welcome:after{content:'';position:absolute;width:220px;height:220px;border-radius:50%;border:34px solid rgba(249,140,43,.09);right:-50px;top:-70px}.welcome h1{font-size:27px;letter-spacing:-.8px;margin:12px 0 7px}.welcome p{font-size:13px;color:#bfc6d1;margin:0;max-width:520px}.welcome-tag{font-size:11px;color:#ffad5b;letter-spacing:1.2px;font-weight:800}.welcome-actions{display:flex;gap:9px;margin-top:20px;flex-wrap:wrap;position:relative;z-index:1}.welcome .btn{border-color:#383e48;background:#2c343e;color:#fff}.welcome .btn.primary{color:#262018;background:var(--orange);border-color:var(--orange)}.notice{padding:16px 0;border-top:1px solid #eef0f3}.notice:first-of-type{border-top:0;padding-top:1px}.notice-top{display:flex;align-items:center;gap:8px;margin-bottom:8px}.notice h3{font-size:13px;margin:0;font-weight:780}.notice p{font-size:13px;white-space:pre-wrap;line-height:1.57;color:#535f6d;margin:7px 0}.notice-meta{font-size:11px;color:#9aa2ae}.tag{display:inline-flex;align-items:center;gap:5px;border-radius:30px;background:#f2f3f6;color:#647082;padding:5px 9px;font-size:11px;font-weight:720}.tag.orange{background:#fff0de;color:#ac5a0c}.tag.red{background:#fff0ed;color:#bb3d37}.tag.green{background:#dff8ec;color:#0c865a}.tag.blue{background:#eaf3ff;color:#306eae}.tag.dark{background:#e5e8ed;color:#364355}.tag .icon{width:13px;height:13px}.task-row,.schedule-row,.work-row,.employee-row{display:flex;align-items:flex-start;gap:11px;padding:13px 0;border-top:1px solid #eef0f3}.task-row:first-of-type,.schedule-row:first-of-type,.work-row:first-of-type,.employee-row:first-of-type{border-top:0}.task-row .task-main,.schedule-main,.work-main{flex:1;min-width:0}.tick{margin-top:1px;width:22px;height:22px;min-width:22px;display:grid;place-items:center;background:#fff;border:1.7px solid #cbd2db;border-radius:7px;color:transparent}.tick:hover{border-color:var(--orange)}.tick.checked{border-color:var(--green);background:var(--green);color:#fff}.tick .icon{width:15px;height:15px}.done-text{text-decoration:line-through;color:#9fa8b3!important}.row-title{font-size:13px;font-weight:700;line-height:1.4;overflow-wrap:anywhere}.row-sub{font-size:11px;color:#8993a1;margin-top:6px;display:flex;flex-wrap:wrap;gap:7px;align-items:center}.row-sub .icon{width:12px;height:12px}.row-desc{font-size:12px;color:#707c8d;margin-top:6px;white-space:pre-line;line-height:1.5}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border:1px dashed #dfe2e7;border-radius:13px;color:#a0a8b2;padding:33px 18px;gap:10px}.empty svg{width:34px;height:34px;color:#bec4cc}.empty strong{font-size:13px;color:#626d7c}.empty p{font-size:12px;margin:0;max-width:320px}.divider{height:1px;background:var(--line);margin:15px 0}.filters{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-bottom:15px}.searchbox{border:1px solid #dfe4ea;display:flex;align-items:center;background:#fff;padding:0 12px;gap:8px;border-radius:11px;min-height:42px;min-width:200px}.searchbox input{border:0;outline:0;min-width:0;flex:1}.searchbox svg{color:#939aa6}.seg{display:flex;gap:3px;border:1px solid #e5e7ed;border-radius:11px;padding:4px;background:#fff}.seg button{background:transparent;border:0;border-radius:8px;padding:8px 11px;color:#697382;font-size:12px;font-weight:690}.seg button.active{background:#222832;color:#fff}.list-grid{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:14px}.job-card{padding:19px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:9px;min-height:190px;border:1px solid #e6e9ef;border-radius:16px;background:#fff}.job-card:hover{border-color:#fdad64;box-shadow:0 10px 23px #151b2512}.job-head{display:flex;align-items:center;justify-content:space-between;gap:9px}.job-icon{background:#fff1e3;color:#e68421;border-radius:12px;width:39px;height:39px;display:grid;place-items:center}.job-name{font-size:15px;font-weight:820;line-height:1.35}.job-address{font-size:12px;color:#818b99;display:flex;gap:7px;align-items:center}.job-desc{font-size:12px;color:#7a8491;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.job-foot{border-top:1px solid #eef0f3;margin-top:auto;padding-top:12px;display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#7c8798}.detail-head{display:flex;gap:13px;align-items:center;margin-bottom:15px}.detail-head h2{font-size:21px;letter-spacing:-.5px;margin:5px 0}.detail-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,1fr);gap:18px}.group-title{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:#959eaa;font-weight:800;margin:18px 0 8px}.day-nav{display:flex;align-items:center;gap:7px}.day-nav input{padding:9px;max-width:165px;background:#fff;border:1px solid #dfe2e8;border-radius:10px;color:#353b43}.schedule-row{gap:12px}.timeblock{border-radius:10px;background:#fff1e5;padding:8px 9px;min-width:79px;font-size:11px;text-align:center;color:#ad5b11;font-weight:800}.schedule-row .timeblock small{display:block;font-weight:600}.sep{color:#d5d9df}.work-row .avatar{width:33px;height:33px;border-radius:10px;font-size:12px}.work-row p{line-height:1.55;white-space:pre-wrap;font-size:13px;color:#4d5968;margin:8px 0 6px}.file-row{display:flex;align-items:center;gap:12px;padding:13px 0;border-top:1px solid #edf0f3}.file-row:first-child{border-top:0}.file-badge{width:35px;height:35px;display:grid;place-items:center;background:#f6f0e9;border-radius:10px;color:#d37b27}.file-detail{flex:1;min-width:0}.file-detail strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px}.file-detail small{color:#9aa2ac}.user-mini{display:flex;align-items:center;gap:9px;padding:9px 0}.user-mini .avatar{width:29px;height:29px;border-radius:9px;font-size:11px}.switch{display:flex;align-items:center;gap:9px;cursor:pointer;font-size:12px}.switch input{accent-color:var(--orange);width:17px;height:17px}.week-grid{display:grid;grid-template-columns:repeat(5,minmax(135px,1fr));gap:10px;overflow:auto}.week-day{background:#fff;border:1px solid #e7eaf0;border-radius:14px;min-width:0;padding:13px}.week-day.today{border-color:#f6a657;box-shadow:0 0 0 1px #ffcf9e}.week-date{font-size:11px;color:#929aa7;margin-bottom:11px}.week-date strong{font-size:13px;color:#242a34;display:block;margin-bottom:3px}.week-item{border-left:3px solid var(--orange);background:#f7f8fa;border-radius:7px;padding:9px;margin-top:7px;font-size:11px}.week-item strong{display:block;margin-bottom:5px;line-height:1.4}.week-item small{color:#8a949f}.week-item.done{border-left-color:var(--green)}.pill-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.banner-note{background:#fff6eb;border:1px solid #ffe1bf;border-radius:12px;padding:13px 15px;color:#986020;font-size:12px;line-height:1.5;margin-bottom:14px}.help{font-size:12px;line-height:1.6;color:#8a94a2}
/* Forms */
.stack{display:flex;flex-direction:column;gap:14px}.field{display:flex;flex-direction:column;gap:6px}.field label,label.form-label{font-size:12px;font-weight:750;color:#576271}.field input,.field textarea,.field select,input.input,textarea.input,select.input{width:100%;border:1px solid #dfe3e9;border-radius:11px;background:#fff;padding:11px 13px;outline:none;color:#202734;min-height:42px}.field :is(input,textarea,select):focus,input.input:focus,textarea.input:focus{border-color:#fa9a44;box-shadow:0 0 0 3px #fa9a4422}.field textarea{min-height:92px;resize:vertical;line-height:1.4}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field small{font-size:11px;color:#9099a5}.modal-wrap{position:fixed;z-index:100;inset:0;background:rgba(15,21,31,.63);display:flex;justify-content:center;align-items:center;padding:19px}.modal{background:#fff;border-radius:19px;width:min(520px,100%);max-height:min(89vh,900px);display:flex;flex-direction:column;box-shadow:0 35px 85px #11182444}.modal.wide{width:min(720px,100%)}.modal-head{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:20px 23px 12px}.modal-head h2{margin:0;font-size:18px;letter-spacing:-.3px}.modal-body{overflow:auto;padding:10px 23px 25px}.modal-foot{display:flex;gap:9px;justify-content:flex-end;margin-top:10px}.modal-close{width:32px;height:32px;border-radius:9px;background:#f4f5f7;border:0;font-size:20px;color:#717a87}.toast{position:fixed;z-index:200;bottom:24px;right:22px;border-radius:12px;background:#222a34;color:#fff;padding:13px 17px;box-shadow:0 10px 40px #0003;max-width:350px;font-size:12px;line-height:1.5}.toast.error{background:#a63d39}.setup-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:25px}.setup-wrap .panel{max-width:480px;padding:27px;background:#fff;border-radius:20px;box-shadow:var(--shadow)}.login-logo{width:215px;max-width:100%;background:#080808;border-radius:12px;padding:7px}.errorbox{color:#aa3636;background:#fff0ed;padding:13px;border-radius:10px}.login-page{display:grid;grid-template-columns:minmax(0,1fr) minmax(330px,495px);min-height:100svh;background:#fff}.login-hero{background:#10151e;min-height:100vh;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden;padding:52px 60px;color:#fff}.login-hero:after{content:'';position:absolute;right:-100px;bottom:-100px;width:390px;height:390px;border:65px solid #ff8c2322;border-radius:50%;transform:rotate(-18deg)}.login-hero img{width:270px;max-width:100%}.login-pitch{position:relative;z-index:1;max-width:600px;margin-bottom:22px}.login-pitch h1{font-size:clamp(39px,4vw,64px);letter-spacing:-2.5px;line-height:1.07;margin-bottom:20px}.login-pitch h1 em{font-style:normal;color:var(--orange)}.login-pitch p{color:#b5beca;font-size:16px;line-height:1.65;max-width:430px}.login-hero-foot{font-size:11px;color:#818c9c;position:relative;z-index:1}.login-side{display:flex;align-items:center;justify-content:center;padding:35px}.login-box{width:100%;max-width:345px}.login-mark{width:53px;height:53px;border-radius:15px;background:#181e26;color:#ffa44b;display:grid;place-items:center;margin-bottom:27px}.login-box h2{font-size:27px;letter-spacing:-.8px;margin:0 0 8px}.login-box p{font-size:13px;color:#86919f;margin:0 0 25px;line-height:1.6}.login-box .btn{width:100%;margin-top:5px;min-height:46px}.login-help{margin-top:22px;border-top:1px solid #eceef2;padding-top:20px;font-size:11px;color:#929ca9;line-height:1.7}.login-help a{color:#b56a1d;text-decoration:underline}.demo-ribbon{background:#fff3df;color:#9b5609;font-size:11px;padding:7px 12px;text-align:center;border-bottom:1px solid #ffdfac;font-weight:720}.mobile-top,.mobile-nav{display:none}
@media (max-width:1160px){.sidebar{width:215px}.main{margin-left:215px;width:calc(100% - 215px)}.content{padding:23px 24px 90px}.topbar{padding:0 24px}.list-grid{grid-template-columns:repeat(2,minmax(220px,1fr))}.home-grid{grid-template-columns:minmax(0,1fr) minmax(260px,.85fr)}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.week-grid{grid-template-columns:repeat(5,minmax(130px,1fr))}}
@media(max-width:790px){.sidebar,.topbar{display:none}.mobile-top{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;padding:9px 17px;height:61px;background:#141a23;color:#fff}.mobile-top img{width:130px;max-height:43px;object-fit:contain}.mobile-top .round-btn{background:#242c36;color:#fff;border-color:#343b46}.mobile-top .mobile-title{font-size:11px;line-height:1.2;color:#b2bac8;text-align:right}.main{margin-left:0;width:100%}.content{padding:18px 15px 106px}.page-head{margin-bottom:17px}.page-head h1{font-size:23px}.home-grid,.detail-grid{grid-template-columns:1fr}.kpi-grid{gap:10px}.kpi{min-height:94px;padding:15px}.kpi strong{font-size:25px;margin-top:8px}.welcome{padding:22px 20px;min-height:150px}.welcome h1{font-size:23px}.list-grid{grid-template-columns:1fr}.mobile-nav{position:fixed;bottom:0;left:0;right:0;z-index:40;display:grid;grid-template-columns:repeat(5,1fr);padding:7px 4px calc(7px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #e7e9ee;box-shadow:0 -6px 30px #161d290d}.mobile-nav button{background:transparent;border:0;color:#8793a1;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:10px;font-weight:740;padding:5px 2px}.mobile-nav button.active{color:#df7a1c}.mobile-nav .icon{width:21px;height:21px}.mobile-extra{position:fixed;z-index:45;bottom:76px;left:12px;right:12px;background:#18202b;border-radius:15px;padding:12px;box-shadow:0 7px 33px #0004}.mobile-extra button{background:transparent;border:0;color:#fff;display:flex;align-items:center;width:100%;padding:11px;gap:13px;text-align:left}.card{padding:17px}.week-grid{display:flex;overflow-x:auto}.week-day{min-width:175px}.page-head .btns{justify-content:flex-end}.page-head .btn{font-size:11px;min-height:35px;padding:8px}.login-page{grid-template-columns:1fr}.login-hero{min-height:200px;padding:24px;justify-content:flex-start}.login-hero img{width:160px}.login-pitch,.login-hero-foot{display:none}.login-side{align-items:flex-start;padding:28px 20px}.login-mark{display:none}.login-box h2{font-size:24px}}
@media(max-width:430px){.field-row{grid-template-columns:1fr}.kpi .kpi-top{font-size:10px}.page-head{align-items:flex-start}.page-head .btns{flex-shrink:0}.seg button{font-size:11px;padding:7px 9px}.day-nav input{max-width:140px}.filters .searchbox{width:100%}.top-date{display:none}.modal-wrap{padding:8px;align-items:flex-end}.modal{border-radius:18px 18px 4px 4px;max-height:93svh}.modal-head{padding:17px 17px 10px}.modal-body{padding:8px 17px 24px}}
