:root{--ink: #172033;--muted: #778196;--line: #e2e7ee;--soft-line: #edf0f4;--bg: #eef3f8;--nav: #041b35;--nav-soft: #123554;--accent: #2d78bd;--accent-dark: #1e639f;--blue: #2f78bd;--violet: #8b65d0;--amber: #d89a38;--green: #37a07c;--rose: #d96d85;--cyan: #4297ad;--slate: #65758b;--danger: #db5151;--shadow: 0 14px 35px rgba(25, 34, 52, .08)}*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;background:radial-gradient(circle at 86% 8%,rgba(45,120,189,.11),transparent 24%),linear-gradient(135deg,#f7f9fc 0%,var(--bg) 56%,#e8f0f7 100%);color:var(--ink);font-family:Inter,Segoe UI,Arial,sans-serif;font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(80,120,223,.22);outline-offset:1px}.app-shell{min-height:100vh}.icon{display:inline-grid;place-items:center;font-style:normal;line-height:1}.sidebar{position:fixed;inset:0 auto 0 0;width:244px;padding:24px 16px 18px;background:linear-gradient(180deg,#031a33,#082743);color:#fff;display:flex;flex-direction:column;z-index:30;box-shadow:12px 0 35px #041b3514}.brand{display:flex;align-items:center;gap:12px;padding:0 8px 18px}.brand-logo{width:48px;height:48px;flex:none;border-radius:10px;background:#fff url(/arakis-mark.jpg) center / cover no-repeat;box-shadow:0 8px 22px #0000002e}.brand b{display:block;letter-spacing:1.7px;font-size:16px}.brand span,.profile span{display:block;margin-top:3px;color:#909bad;font-size:11px}.local-chip{margin:0 8px 24px;border:1px solid #344055;border-radius:8px;padding:8px 10px;color:#c1cad7;font-size:10px;letter-spacing:.45px;text-transform:uppercase}.local-chip span{display:inline-block;width:7px;height:7px;margin-right:7px;background:#53c592;border-radius:50%;box-shadow:0 0 0 3px #53c5921f}.local-chip.server{border-color:#53c59257;color:#d9f5e8}.sidebar nav{display:grid;gap:4px}.sidebar nav button{width:100%;border:0;border-radius:8px;padding:11px 12px;background:transparent;color:#9ba5b5;display:grid;grid-template-columns:23px 1fr auto;align-items:center;gap:8px;text-align:left}.sidebar nav button .icon{font-size:18px}.sidebar nav button em{min-width:24px;padding:2px 7px;border-radius:12px;background:#2c374a;font-size:10px;font-style:normal;text-align:center}.sidebar nav button:hover,.sidebar nav button.active{background:var(--nav-soft);color:#fff}.sidebar nav button.active{box-shadow:inset 3px 0 var(--accent)}.side-label{margin:30px 12px 10px;color:#626d7d;font-size:10px;letter-spacing:1.2px}.profile{margin-top:auto;padding:18px 4px 0;border-top:1px solid #293244;display:flex;align-items:center;gap:9px}.profile>div:nth-child(2){flex:1;min-width:0}.profile b{display:block;overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.profile button{border:0;background:none;color:#8f99aa}.profile .logout-link{margin-top:5px;padding:0;color:#9dc7e8;font-size:11px;text-align:left}.profile .logout-link:hover{color:#fff}.content{min-height:100vh;margin-left:244px;padding:0 28px 48px;min-width:790px;background-image:linear-gradient(rgba(45,120,189,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(45,120,189,.025) 1px,transparent 1px);background-size:32px 32px}.topbar{height:90px;margin:0 -28px 24px;padding:0 30px;border-bottom:1px solid var(--line);background:#fffffff5;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:20;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.topbar h1{margin:0 0 5px;font-size:23px;letter-spacing:-.45px}.topbar p,.panel-head p,.section-title p{margin:0;color:var(--muted);font-size:12px}.header-actions{display:flex;gap:8px}.primary,.secondary,.icon-btn,.danger-btn{min-height:38px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#4c5668;padding:9px 13px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:600}.primary{border-color:var(--accent);background:var(--accent);color:#fff;box-shadow:0 5px 13px #2d78bd33}.primary:hover{background:var(--accent-dark)}.primary:disabled{border-color:#c9cdd5;background:#c9cdd5;box-shadow:none;cursor:not-allowed}.secondary:hover,.icon-btn:hover{background:#f7f9fb;color:var(--ink)}.icon-btn{width:38px;padding:8px;font-size:18px}.notify{position:relative}.notify:after{content:"";position:absolute;top:6px;right:7px;width:6px;height:6px;border-radius:50%;background:var(--danger)}.danger-btn{margin-right:auto;border-color:#f0caca;color:#c74242}.danger-btn:hover{background:#fff3f3}.toolbar{margin-bottom:18px;display:flex;align-items:center;justify-content:space-between;gap:14px}.month-control{min-width:230px;border:1px solid var(--line);border-radius:9px;background:#fff;display:flex;align-items:center;justify-content:space-between;overflow:hidden}.month-control button{align-self:stretch;width:42px;border:0;background:#fff;color:#687386;font-size:21px}.month-control button:hover{background:#f6f8fa}.month-control div{min-width:135px;padding:7px 4px;text-align:center}.month-control b{display:block;font-size:13px;text-transform:capitalize}.month-control span{display:block;margin-top:3px;color:var(--muted);font-size:10px}.month-control.compact{min-width:210px}.month-control.compact>b{text-transform:capitalize}.filters{display:flex;gap:8px;align-items:center}.search{min-width:235px;height:40px;border:1px solid var(--line);border-radius:8px;padding:0 11px;background:#fff;display:flex;align-items:center;gap:7px;color:#8993a5}.search input{width:100%;border:0;outline:0;background:transparent;color:var(--ink)}.search.full{min-width:0;width:100%;margin-bottom:10px}.filters select{max-width:210px;height:40px;border:1px solid var(--line);border-radius:8px;padding:0 30px 0 11px;background:#fff;color:#586276}.metric-row{margin-bottom:18px;display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px}.metric-row article,.panel,.list-panel,.detail-panel{border:1px solid #dce5ef;border-radius:11px;background:#fffffff7;box-shadow:0 8px 24px #041b3509}.metric-row article{min-height:104px;padding:15px 16px}.metric-row article>span{display:block;color:var(--muted);font-size:11px}.metric-row article>b{display:block;margin:7px 0 6px;font-size:26px;line-height:1}.metric-row article b small{color:#9aa3b3;font-size:12px;font-weight:500}.metric-row article>i{display:block;color:var(--muted);font-size:10px;font-style:normal}.metric-row article>i.ok{color:var(--green)}.metric-row article>i.danger{color:var(--danger)}.progress{height:5px;border-radius:5px;background:#edf0f4;overflow:hidden}.progress i{display:block;height:100%;border-radius:inherit;background:var(--accent)}.panel{overflow:hidden}.panel-head{min-height:69px;padding:15px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px}.panel-head h2,.section-title h3,.customer-team h3{margin:0 0 4px;font-size:14px}.legend{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;color:var(--muted);font-size:10px}.legend span{white-space:nowrap}.legend i,.timeline-row>span i{display:inline-block;width:8px;height:8px;margin-right:5px;border-radius:2px}.legend i.site{background:#2877b7}.legend i.office{background:repeating-linear-gradient(135deg,#2d8f91 0 3px,#cde9e8 3px 6px)}.legend i.remote{background:repeating-linear-gradient(135deg,#7656ad 0 3px,#e6ddf2 3px 6px)}.legend i.vacation{background:#eeb94c}.legend i.sick{background:#df6464}.legend i.day-off{border:1px solid #a9b3c1;background:#edf0f4}.legend i.working-weekend{border:2px solid #2877b7;background:#dfeefa}.legend i.holiday{border:2px solid #d75a63;background:#fff}.legend-warning{display:inline-grid;width:15px;height:15px;margin-right:5px;place-items:center;border-radius:50%;color:#fff;font-size:9px;line-height:1}.legend-warning.overtime{background:#f3c94c;color:#523e00}.legend-warning.conflict{background:var(--danger)}.schedule-scroll{overflow:auto;max-height:calc(100vh - 330px);min-height:360px}.schedule-grid{display:grid;min-width:max-content;position:relative}.sticky{position:sticky;left:0;z-index:7}.name-head,.day-head{height:48px;border-bottom:1px solid var(--line);background:#fafbfc}.name-head{top:0;z-index:12;padding:0 15px;display:flex;align-items:center;color:#8c96a7;font-size:9px;letter-spacing:.7px}.day-head{position:sticky;top:0;z-index:9;border-left:1px solid var(--soft-line);display:grid;place-content:center;text-align:center}.day-head span{color:#9aa3b2;font-size:8px;text-transform:uppercase}.day-head b{margin-top:2px;font-size:11px}.weekend{background:#f6f7f9!important;color:#9aa3b1}.day-cell.weekend.assigned.site,.day-cell.weekend.assigned.office,.day-cell.weekend.assigned.remote{background:#2877b7!important;color:#fff!important}.today{box-shadow:inset 2px 0 #2d78bdb8,inset -2px 0 #2d78bd2e}.day-head.today{color:var(--accent)}.project-group-head{position:sticky;left:0;z-index:8;width:100%;height:42px;border:0;border-bottom:1px solid var(--line);padding:0 14px;background:#f2f5f9;color:var(--ink);display:flex;align-items:center;gap:9px;text-align:left}.project-group-head:hover{background:#edf1f6}.project-group-head .project-icon{width:27px;height:27px;border-radius:7px;font-size:9px}.project-group-head>span:nth-of-type(2){color:var(--muted);font-size:10px}.project-group-head em{margin-left:auto;color:#7b8798;font-size:15px;font-style:normal;transition:transform .15s ease}.project-group-head em.collapsed{transform:rotate(-90deg)}.project-group-head.absence-head{background:#f8f5ef}.project-group-head.unassigned-head{background:#f3f4f7}.person-cell{width:284px;height:54px;border:0;border-bottom:1px solid var(--line);padding:7px 12px;background:#fff;color:var(--ink);display:flex;align-items:center;gap:9px;text-align:left}.person-cell:hover{background:#fafbfd}.person-cell>span:nth-child(2){min-width:0;flex:1}.person-cell b,.person-cell small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.person-cell b{font-size:11px}.person-cell small{margin-top:3px;color:var(--muted);font-size:9px}.person-cell em,.person-list-item>em{min-width:38px;border-radius:10px;padding:3px 6px;font-size:9px;font-style:normal;font-weight:700;text-align:center}.person-cell em.load-blue,.person-list-item>em.load-blue{background:#dcecff;color:#1d64aa}.person-cell em.load-green,.person-list-item>em.load-green{background:#e5f5ed;color:#247d5d}.person-cell em.load-yellow,.person-list-item>em.load-yellow{background:#fff5b8;color:#775c00}.person-cell em.load-orange,.person-list-item>em.load-orange{background:#ffe2bd;color:#a95500}.person-cell em.load-red,.person-list-item>em.load-red{background:#ffe0e0;color:#bd3030}.person-cell em.load-black,.person-list-item>em.load-black{background:#20242b;color:#fff}.day-cell{position:relative;width:42px;height:54px;border:0;border-left:1px solid var(--soft-line);border-bottom:1px solid var(--line);background:#fff;color:#fff;padding:0;display:grid;place-items:center}.day-cell:not(.assigned):hover{background:#eef4ff!important}.day-cell.assigned{color:#fff;box-shadow:inset 0 6px #fff,inset 0 -6px #fff}.day-cell.assigned.blue{background:var(--blue)}.day-cell.assigned.violet{background:var(--violet)}.day-cell.assigned.amber{background:var(--amber)}.day-cell.assigned.green{background:var(--green)}.day-cell.assigned.rose{background:var(--rose)}.day-cell.assigned.cyan{background:var(--cyan)}.day-cell.assigned.slate{background:var(--slate)}.day-cell.assigned.site,.week-slot .work.site{background:#2877b7}.day-cell.assigned.office,.week-slot .work.office{color:#174e52;background:repeating-linear-gradient(135deg,#cde9e8 0 5px,#a9d6d4 5px 10px)}.day-cell.assigned.remote,.week-slot .work.remote{color:#4d3674;background:repeating-linear-gradient(135deg,#e6ddf2 0 5px,#d1c2e6 5px 10px)}.day-cell.assigned.vacation{color:#654b12;background:#eeb94c}.day-cell.assigned.sick{color:#fff;background:#df6464}.day-cell.marked{box-shadow:inset 0 6px #fff,inset 0 -6px #fff}.day-cell.marked.off{background:#edf0f4!important;color:#818c9c}.day-cell.marked.holiday{background:#fff5f5!important;color:#c94c57;box-shadow:inset 0 6px #fff,inset 0 -6px #fff,inset 0 0 0 2px #df747c}.day-cell.assigned span{font-size:9px;font-weight:800}.day-cell.assigned .assignment-caption{position:absolute;inset:auto auto 7px 3px;z-index:3;max-width:34px;overflow:hidden;text-overflow:ellipsis;color:inherit;font-size:6px;font-weight:800;line-height:1;text-transform:uppercase;white-space:nowrap}.day-cell .day-marker{position:absolute;inset:3px 3px auto auto;z-index:5;width:auto;min-width:13px;height:13px;padding:0 2px;border:1px solid rgba(255,255,255,.9);border-radius:4px;background:#ffffffeb;color:#42536a;display:inline-flex;align-items:center;justify-content:center;font-size:6px;font-weight:900;line-height:1;box-shadow:0 1px 3px #10233724}.day-cell .day-marker.marker-holiday{border-color:#e09aa0;color:#b63e49}.day-cell .day-marker.marker-off{border-color:#c7ced7;color:#687687}.day-cell .day-marker.marker-day_off{border-color:#b8c5d1;color:#43586e}.day-cell .day-marker.marker-vacation_paid{border-color:#e5c878;color:#78560a}.day-cell .day-marker.marker-vacation_unpaid{border-color:#c6cbd2;color:#59636f}.day-cell .day-marker.marker-sick{border-color:#c8abd9;color:#6b4481}.day-cell.conflict:after,.day-cell.overtime:after{content:"!";position:absolute;left:2px;right:auto;top:2px;z-index:6;width:14px;height:14px;border:2px solid #fff;border-radius:50%;display:grid;place-items:center;font-size:8px;font-weight:900;box-shadow:0 1px 4px #0000002e}.day-cell.conflict:after{background:var(--danger);color:#fff}.day-cell.overtime:after{background:#f3c94c;color:#523e00}.empty-state{margin:22px;border:1px dashed #cfd6df;border-radius:10px;padding:30px;display:grid;place-items:center;gap:8px;color:var(--muted)}.empty-state b{color:var(--ink);font-size:15px}.empty-state .primary{margin-top:8px}.split-layout{display:grid;grid-template-columns:310px minmax(720px,1fr);gap:18px;align-items:start}.list-panel{position:sticky;top:108px;max-height:calc(100vh - 132px);padding:12px;overflow:auto}.project-list-item,.person-list-item{width:100%;min-height:63px;margin-bottom:4px;border:1px solid transparent;border-radius:9px;padding:9px;background:transparent;color:var(--ink);display:flex;align-items:center;gap:10px;text-align:left}.project-list-item:hover,.project-list-item.active,.person-list-item:hover,.person-list-item.active{border-color:var(--line);background:#f5f7fb}.project-list-item.active,.person-list-item.active{box-shadow:inset 3px 0 var(--accent)}.project-list-item>span:nth-child(2),.person-list-item>span:nth-child(2){min-width:0;flex:1}.project-list-item b,.project-list-item small,.project-list-item i,.person-list-item b,.person-list-item small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-list-item b,.person-list-item b{font-size:11px}.project-list-item small,.person-list-item small{margin-top:3px;color:var(--muted);font-size:9px}.project-list-item i{margin-top:5px;color:#687489;font-size:8px;font-style:normal}.project-list-item>em{color:#687489;font-size:10px;font-style:normal}.project-icon{width:40px;height:40px;flex:none;border-radius:9px;color:#fff;display:grid;place-items:center;font-size:11px;font-weight:800}.project-icon.large{width:52px;height:52px;border-radius:12px;font-size:14px}.project-icon.blue,i.blue{background:var(--blue)}.project-icon.violet,i.violet{background:var(--violet)}.project-icon.amber,i.amber{background:var(--amber)}.project-icon.green,i.green{background:var(--green)}.project-icon.rose,i.rose{background:var(--rose)}.project-icon.cyan,i.cyan{background:var(--cyan)}.project-icon.slate,i.slate{background:var(--slate)}.project-icon.vacation,i.vacation,.project-icon.absence{background:#e5b846;color:#664b0a}.project-icon.sick,i.sick{background:#e96e6e}.detail-panel{padding:22px;overflow:hidden}.object-title,.person-hero{min-height:72px;padding-bottom:18px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:14px}.object-title>div,.person-hero>div{min-width:0;flex:1}.object-title h2,.person-hero h2{margin:2px 0 5px;font-size:21px;letter-spacing:-.3px}.object-title p,.person-hero p{margin:0;color:var(--muted);font-size:11px}.eyebrow{color:#9aa3b3;font-size:9px;letter-spacing:1.1px}.badge{border-radius:14px;padding:6px 9px;background:#eaf6f1;color:#278667;font-size:9px;white-space:nowrap}.employment-badge{border-radius:14px;padding:6px 9px;font-size:9px;font-weight:700;white-space:nowrap}.employment-badge.staff{background:#e8eff8;color:#315e8e}.employment-badge.contractor{background:#e5f5ed;color:#247d5d}.passport-grid{margin:18px 0;border:1px solid var(--line);border-radius:9px;background:var(--line);display:grid;grid-template-columns:repeat(4,1fr);gap:1px;overflow:hidden}.passport-grid article{min-height:78px;padding:13px;background:#fafbfc}.passport-grid article span{display:block;margin-bottom:7px;color:var(--muted);font-size:9px}.passport-grid article b{font-size:11px;line-height:1.35}.passport-grid .progress{margin-top:7px}.section-title{margin:22px 0 10px;display:flex;align-items:center;justify-content:space-between;gap:16px}.team-strip{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:8px}.team-strip article{min-height:66px;border:1px solid var(--line);border-radius:9px;padding:10px;display:flex;align-items:center;gap:10px}.team-strip b,.team-strip span,.team-strip i{display:block}.team-strip b{font-size:11px}.team-strip span{margin-top:3px;color:var(--muted);font-size:9px}.team-strip i{margin-top:4px;color:var(--blue);font-size:8px;font-style:normal}.inline-empty{grid-column:1 / -1;border:1px dashed #d5dae2;border-radius:9px;padding:22px;color:var(--muted);text-align:center}.customer-team{margin-top:16px;border-radius:9px;padding:14px;background:#f7f9fb}.customer-team>div{display:grid;grid-template-columns:36px 1fr 36px 1fr;align-items:center;gap:9px}.customer-team p{margin:0}.customer-team p b,.customer-team p small{display:block}.customer-team p b{font-size:10px}.customer-team p small{margin-top:3px;color:var(--muted);font-size:8px}.status-dot{color:var(--green);font-size:9px}.week-grid{border:1px solid var(--line);border-radius:9px;display:grid;grid-template-columns:190px repeat(7,minmax(75px,1fr));overflow:auto}.week-grid>div{min-height:44px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;place-items:center;color:#8791a2;font-size:9px}.week-grid>div span,.week-grid>div b{display:block;text-align:center}.week-person{min-width:190px;padding:7px 9px;display:flex!important;justify-content:flex-start!important;gap:8px;color:var(--ink)!important}.week-person>span:nth-child(2){min-width:0}.week-person b,.week-person small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.week-person small{margin-top:3px;color:var(--muted);font-size:8px}.week-slot .work{width:86%;border-radius:5px;padding:4px 2px;background:var(--blue);color:#fff;font-size:7px;line-height:1.25}.calendar-label{border-radius:5px;padding:5px 7px;font-size:7px}.calendar-label.off{background:#e8edf2;color:#7e8998}.calendar-label.holiday{border:1px solid #df747c;background:#fff4f4;color:#c24a55}.contact-row{padding:12px 0 0 50px;display:flex;gap:20px;color:var(--muted);font-size:10px}.person-metrics{margin-top:18px;grid-template-columns:repeat(6,minmax(120px,1fr))}.person-metrics .absence-metric{position:relative;overflow:hidden}.person-metrics .absence-metric:before{content:"";position:absolute;inset:0 auto 0 0;width:4px}.person-metrics .absence-metric.vacation:before{background:#eeb94c}.person-metrics .absence-metric.sick:before{background:#df6464}.personal-timeline{overflow:auto;border:1px solid var(--line);border-radius:8px}.timeline-head,.timeline-row{min-width:1040px;display:grid;grid-template-columns:170px repeat(31,minmax(27px,1fr))}.timeline-head>*,.timeline-row>*{min-height:34px;border-left:1px solid var(--soft-line);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:center}.timeline-head>span,.timeline-row>span{position:sticky;left:0;z-index:3;padding:0 10px;background:#fff;justify-content:flex-start}.timeline-head>span{z-index:5;background:#fafbfc;color:var(--muted);font-size:9px;text-transform:uppercase}.timeline-head b{background:#fafbfc;font-size:8px}.timeline-row>span b{overflow:hidden;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.timeline-row button{border:0;border-left:1px solid var(--soft-line);border-bottom:1px solid var(--line);background:#fff;padding:0}.timeline-row button:hover{background:#edf4ff}.timeline-row .fill{width:100%;height:18px;background:var(--blue)}.timeline-row .fill.site{background:#2877b7}.timeline-row .fill.office{background:repeating-linear-gradient(135deg,#cde9e8 0 5px,#a9d6d4 5px 10px)}.timeline-row .fill.remote{background:repeating-linear-gradient(135deg,#e6ddf2 0 5px,#d1c2e6 5px 10px)}.timeline-row .fill.vacation{background:#eeb94c}.timeline-row .fill.sick{background:#df6464}.timeline-row .fill.day-off{height:8px;background:#c9d0da}.timeline-row .fill.day-holiday{height:18px;border:2px solid #d75a63;background:#fff5f5}.assignment-cards{display:grid;gap:7px}.assignment-cards>button{width:100%;min-height:63px;border:1px solid var(--line);border-radius:9px;padding:10px;background:#fff;color:var(--ink);display:flex;align-items:center;gap:10px;text-align:left}.assignment-cards>button:hover{border-color:#cbd3df;box-shadow:0 4px 12px #141e300d}.assignment-cards button>div{min-width:0;flex:1}.assignment-cards b,.assignment-cards small,.assignment-cards i{display:block}.assignment-cards b{font-size:11px}.assignment-cards small{margin:3px 0;color:var(--muted);font-size:9px}.assignment-cards i{color:var(--blue);font-size:8px;font-style:normal}.assignment-cards em{color:var(--muted);font-size:9px;font-style:normal}.assignment-cards>button.pending,.timeline-row.pending{border-style:dashed;opacity:.72}.day-cell.assigned.pending{opacity:.62;outline:2px dashed rgba(255,255,255,.9);outline-offset:-4px}.day-cell:disabled{cursor:not-allowed}.legend i.pending{border:1px dashed #8c96a7;background:#d8dde6}.role-profile{align-items:flex-start}.role-profile select{width:100%;margin-top:7px;border:1px solid #344055;border-radius:6px;padding:5px 6px;background:#192335;color:#dce3ed;font-size:9px}.pending-count{background:var(--accent)!important;color:#fff}.admin-section{display:grid;gap:16px}.access-note{border:1px solid #ced9e8;border-radius:10px;padding:13px 15px;background:#f4f8fd;color:#52647d;display:flex;align-items:center;gap:14px}.access-note.important{border-color:#ead9b6;background:#fffaf0;color:#735c2c}.access-note b{color:var(--ink);font-size:11px;white-space:nowrap}.access-note span{font-size:10px;line-height:1.45}.timesheet-toolbar{margin:0}.field-inline{min-width:310px;display:grid;gap:5px}.field-inline span{color:var(--muted);font-size:9px;font-weight:600}.field-inline select{height:41px;border:1px solid var(--line);border-radius:8px;padding:0 34px 0 11px;background:#fff;color:var(--ink)}.timesheet-summary{border-radius:14px;padding:6px 9px;background:#f0f3f7;color:var(--muted);font-size:9px}.timesheet-scroll{max-height:calc(100vh - 285px);overflow:auto}.timesheet-grid{min-width:max-content;display:grid}.ts-head,.ts-cell{min-height:42px;border-right:1px solid var(--soft-line);border-bottom:1px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:center}.ts-head{position:sticky;top:0;z-index:6;min-height:48px;background:#f8fafc;color:#758095;font-size:9px;font-weight:700}.ts-head small{display:block;margin-left:3px;color:#a2aab7;font-size:7px;text-transform:uppercase}.sticky-ts{position:sticky;left:48px;z-index:5;box-shadow:3px 0 6px #1f2a3c0a}.ts-head.sticky-ts{z-index:8}.ts-cell.person-name{padding:5px 9px;justify-content:flex-start;gap:8px}.ts-cell.person-name b{overflow:hidden;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.ts-cell.role-cell{padding:6px 9px;color:var(--muted);font-size:9px;justify-content:flex-start}.ts-cell input{width:37px;height:30px;border:1px solid transparent;border-radius:5px;background:transparent;color:var(--ink);font-size:10px;text-align:center}.ts-cell input:hover,.ts-cell input:focus{border-color:#bfcbe0;background:#fff}.ts-cell.not-planned input{color:transparent;cursor:default}.ts-cell.total,.ts-head.total{position:sticky;right:0;z-index:5;background:#f7f9fc;box-shadow:-3px 0 6px #1f2a3c0a}.ts-head.total{z-index:8}.approval-list{display:grid;gap:10px}.approval-list>article{border:1px solid var(--line);border-radius:11px;padding:15px;background:#fff;display:grid;grid-template-columns:minmax(360px,1fr) 150px auto;align-items:center;gap:15px}.approval-list>article.has-conflict{border-color:#efc7c7}.approval-main{display:flex;align-items:center;gap:12px}.approval-main h3{margin:3px 0 4px;font-size:13px}.approval-main p,.approval-main small{display:block;margin:0;color:var(--muted);font-size:9px}.approval-main small{margin-top:6px;color:#556278}.approval-state span{display:inline-block;border-radius:12px;padding:5px 8px;font-size:9px}.conflict-label{background:#fff0ef;color:var(--danger)}.clear-label{background:#eaf6f1;color:#278667}.approval-actions{display:flex;gap:7px}.approval-actions .reject{border-color:#f0caca;color:#c74242}.role-matrix{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.role-matrix article{border:1px solid var(--line);border-radius:10px;padding:15px;background:#fff}.role-matrix article>span{color:var(--accent);font-size:10px;font-weight:800}.role-matrix h3{margin:8px 0 5px;font-size:13px}.role-matrix p{margin:0;color:var(--muted);font-size:10px;line-height:1.45}.account-list{display:grid}.account-list>article{min-height:84px;border-bottom:1px solid var(--line);padding:13px 16px;display:grid;grid-template-columns:minmax(260px,1.2fr) minmax(150px,.7fr) minmax(210px,1fr) 90px;align-items:center;gap:12px}.account-list>article:last-child{border-bottom:0}.account-person{display:flex;align-items:center;gap:10px}.account-person>div{min-width:0;flex:1;display:grid;gap:4px}.account-person input{width:100%;border:0;border-bottom:1px solid transparent;padding:2px 0;background:transparent;color:var(--ink);font-size:10px;font-weight:700}.account-person input+input{color:var(--muted);font-size:9px;font-weight:400}.account-person input:not(:disabled):hover,.account-person input:not(:disabled):focus{border-color:#c9d2df}.account-list article>label{display:grid;gap:5px}.account-list article>label>span,.project-access>span{color:var(--muted);font-size:8px;font-weight:600;text-transform:uppercase}.account-list select{height:37px;border:1px solid var(--line);border-radius:7px;padding:0 8px;background:#fff;color:var(--ink);font-size:9px}.account-list .active-account{display:flex;align-items:center;gap:6px;color:#596579;font-size:9px}.project-access{grid-column:1 / -1;padding:9px 0 2px 46px;display:flex;flex-wrap:wrap;gap:7px}.project-access>span{width:100%;margin-bottom:2px}.project-access label{border:1px solid var(--line);border-radius:14px;padding:5px 8px;background:#f8fafc;color:#596579;display:flex;align-items:center;gap:5px;font-size:9px}.avatar{width:36px;height:36px;flex:none;border-radius:50%;background:#e8edf5;color:#506079;display:grid;place-items:center;font-size:10px;font-weight:800}.avatar.small{width:30px;height:30px;font-size:9px}.avatar.outline{border:1px solid #cfd6e1;background:#fff}.modal-backdrop{position:fixed;inset:0;z-index:80;padding:28px;background:#11182785;display:grid;place-items:center;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal{width:min(640px,100%);max-height:calc(100vh - 56px);overflow:auto;border-radius:13px;padding:22px;background:#fff;box-shadow:0 25px 70px #0a111e40}.modal.assignment-modal{width:min(840px,100%)}.modal-head{margin-bottom:18px;padding-bottom:15px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:flex-start}.modal-head span{color:#9aa3b2;font-size:9px;letter-spacing:1px}.modal-head h2{margin:4px 0 0;font-size:20px}.modal-head>button{width:34px;height:34px;border:0;border-radius:50%;background:#f4f6f9;color:#687386;font-size:21px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.form-grid label{display:grid;gap:6px}.form-grid label.full,.form-grid .full{grid-column:1 / -1}.form-grid label>span{color:#697488;font-size:10px;font-weight:600}.form-grid input,.form-grid select,.form-grid textarea{width:100%;min-height:41px;border:1px solid #dbe0e8;border-radius:8px;padding:9px 10px;background:#fff;color:var(--ink)}.form-grid textarea{min-height:76px;resize:vertical}.checkbox-field{align-content:start}.checkbox-field .checkbox-line{min-height:41px;border:1px solid #dbe0e8;border-radius:8px;padding:8px 10px;color:#4e5b6f;display:flex;align-items:center;gap:8px;font-size:10px;font-weight:500}.checkbox-field .checkbox-line input{width:17px;min-height:17px;height:17px;margin:0;accent-color:var(--accent)}.worktime-block{border:1px solid #d5e2ee;border-radius:10px;padding:13px;background:#f7fafc}.worktime-head{margin-bottom:11px;display:flex;align-items:center;justify-content:space-between;gap:14px}.worktime-head b,.worktime-head span{display:block}.worktime-head b{font-size:11px}.worktime-head span{margin-top:3px;color:var(--muted);font-size:9px}.worktime-head strong{border-radius:15px;padding:6px 10px;background:#e5f0f9;color:#1f659f;font-size:10px;white-space:nowrap}.worktime-fields{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.worktime-fields label{display:grid;gap:5px}.worktime-fields label span{color:#697488;font-size:9px;font-weight:600}.assignment-calendar{border:1px solid #dbe3ec;border-radius:10px;padding:13px}.calendar-head{margin-bottom:10px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.calendar-head b,.calendar-head span{display:block}.calendar-head b{font-size:11px}.calendar-head span{margin-top:3px;color:var(--muted);font-size:9px}.calendar-head>div:last-child{color:#6f7a8d;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:5px;font-size:8px}.calendar-head i{width:9px;height:9px;margin-left:5px;border-radius:2px;background:#2877b7}.calendar-head i.holiday{border:2px solid #d75a63;background:#fff5f5}.calendar-head i.off{border:1px solid #a9b3c1;background:#edf0f4}.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(48px,1fr));gap:6px}.calendar-day{min-height:58px;border:1px solid #dce3eb;border-radius:8px;padding:6px 4px;background:#fff;color:var(--ink);display:grid;place-items:center;gap:1px}.calendar-day span{color:#7d8899;font-size:8px;text-transform:uppercase}.calendar-day b{font-size:12px}.calendar-day small{width:18px;height:18px;border-radius:50%;background:#2877b7;color:#fff;display:grid;place-items:center;font-size:8px;font-weight:800}.calendar-day.holiday{border-color:#df747c;background:#fff7f7;color:#ba424d}.calendar-day.holiday small{background:#d75a63}.calendar-day.off{background:#f1f3f6;color:#818c9c}.calendar-day.off small{background:#9aa5b3}.calendar-day:hover{transform:translateY(-1px);box-shadow:0 5px 12px #041b3517}.form-alert{margin-top:14px;border-radius:9px;padding:12px 13px;display:grid;gap:4px}.form-alert.warning{border:1px solid #edd698;background:#fff9e9;color:#7b5d15}.form-alert.info{margin:0 0 14px;border:1px solid #cdd9ea;background:#f3f7fd;color:#506580}.form-alert.error{border:1px solid #f0c1c1;background:#fff2f2;color:#a13c3c}.form-alert b{font-size:11px}.form-alert span{font-size:10px;line-height:1.4}.form-alert label{margin-top:7px;display:flex;align-items:center;gap:7px;font-size:10px}.modal-actions{margin-top:18px;padding-top:15px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px}.toast{position:fixed;right:24px;bottom:24px;z-index:100;border-radius:9px;padding:12px 16px;background:#1d293b;color:#fff;box-shadow:var(--shadow);font-size:11px;animation:toast-in .18s ease-out}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.login-page{min-height:100vh;padding:28px;display:grid;place-items:center;background:radial-gradient(circle at 78% 12%,rgba(45,120,189,.2),transparent 28%),linear-gradient(145deg,#031a33,#0c2d4b 58%,#17466b)}.login-card{width:min(430px,100%);border:1px solid rgba(255,255,255,.15);border-radius:18px;padding:34px;background:#fffffffa;box-shadow:0 30px 90px #0000004d}.login-card.loading-card{min-height:150px;display:grid;align-items:center}.login-brand{margin-bottom:30px;display:flex;align-items:center;gap:13px}.login-brand b{display:block;color:#071d33;letter-spacing:2px;font-size:19px}.login-brand span{display:block;margin-top:3px;color:var(--muted);font-size:11px}.server-chip{width:max-content;border-radius:20px;padding:6px 10px;background:#e6f5ef;color:#24785d;display:flex;align-items:center;gap:7px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.server-chip i{width:7px;height:7px;border-radius:50%;background:#39a87f;box-shadow:0 0 0 4px #39a87f1f}.login-card h1{margin:17px 0 6px;color:#111c2d;font-size:28px}.login-card p{margin:0;color:var(--muted)}.login-card form{margin:26px 0 20px;display:grid;gap:15px}.login-card label{display:grid;gap:7px}.login-card label span{color:#526075;font-size:11px;font-weight:700}.login-card input{height:46px;border:1px solid #d7dfe8;border-radius:9px;padding:0 12px;background:#fff}.login-card .primary{min-height:46px;margin-top:3px}.login-card>small{color:#8d97a7;line-height:1.5}.login-error{border:1px solid #efc3c3;border-radius:8px;padding:10px 12px;background:#fff3f3;color:#a23e3e;font-size:11px}.password-link{width:max-content;margin-top:4px;border:0;padding:0;background:transparent;color:var(--accent);font-size:10px;font-weight:700}.password-link:hover{text-decoration:underline}@media(max-width:1180px){.toolbar{align-items:stretch;flex-direction:column}.filters{flex-wrap:wrap}.filters .search{flex:1}.split-layout{grid-template-columns:280px minmax(680px,1fr)}.passport-grid{grid-template-columns:repeat(2,1fr)}.account-list>article{grid-template-columns:1fr 1fr}.project-access{grid-column:1 / -1;padding-left:0}.person-metrics{grid-template-columns:repeat(3,1fr)}}@media(max-width:920px){.sidebar{width:78px;padding-inline:12px}.brand{padding-inline:6px}.brand>div:last-child,.local-chip,.sidebar nav span,.sidebar nav em,.side-label,.profile>div:nth-child(2),.profile>button{display:none}.sidebar nav button{grid-template-columns:1fr;place-items:center}.sidebar nav button.active{box-shadow:inset 0 -3px var(--accent)}.profile{justify-content:center}.content{margin-left:78px}.metric-row{grid-template-columns:repeat(2,1fr)}.split-layout{grid-template-columns:260px minmax(650px,1fr)}}@media(max-width:760px){body{font-size:13px}.sidebar{inset:auto 0 0;width:100%;height:66px;padding:8px 12px;flex-direction:row;align-items:center;box-shadow:0 -7px 22px #141e321f}.brand,.sidebar .muted,.profile{display:none}.sidebar nav{width:100%;display:flex;overflow-x:auto}.sidebar nav button{min-width:86px;padding:7px 5px;display:flex;flex:1;flex-direction:column;gap:4px;font-size:9px}.sidebar nav span{display:block}.content{min-width:0;margin-left:0;padding:0 14px 88px}.topbar{height:auto;min-height:78px;margin:0 -14px 16px;padding:14px;gap:10px}.topbar h1{font-size:19px}.topbar p,.header-actions .icon-btn{display:none}.header-actions .primary{padding-inline:10px;font-size:10px}.toolbar,.filters{width:100%}.month-control,.filters .search,.filters select{width:100%;max-width:none}.filters{display:grid;grid-template-columns:1fr}.metric-row{grid-template-columns:1fr 1fr}.metric-row article{min-height:94px}.panel-head{align-items:flex-start;flex-direction:column}.legend{justify-content:flex-start}.schedule-scroll{max-height:58vh}.split-layout{display:block}.list-panel{position:static;max-height:260px;margin-bottom:12px}.detail-panel{padding:15px}.object-title,.person-hero{flex-wrap:wrap}.object-title .secondary,.person-hero .secondary{margin-left:auto}.passport-grid{grid-template-columns:1fr 1fr}.team-strip{grid-template-columns:1fr}.section-title{align-items:flex-start}.month-control.compact{min-width:170px}.contact-row{padding-left:0;flex-direction:column;gap:4px}.person-metrics{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.form-grid label.full,.form-grid .full{grid-column:auto}.worktime-fields{grid-template-columns:1fr 1fr}.calendar-head{flex-direction:column}.calendar-head>div:last-child{justify-content:flex-start}.calendar-days{grid-template-columns:repeat(7,minmax(40px,1fr))}.modal-backdrop{padding:10px;align-items:end}.modal{max-height:92vh;border-radius:14px 14px 8px 8px;padding:17px}.toast{right:14px;bottom:80px;left:14px;text-align:center}.access-note{align-items:flex-start;flex-direction:column;gap:5px}.access-note b{white-space:normal}.role-matrix{grid-template-columns:1fr}.approval-list>article{grid-template-columns:1fr}.approval-actions{justify-content:flex-end}.account-list>article{grid-template-columns:1fr}.project-access{grid-column:auto}.timesheet-toolbar .field-inline{min-width:0;width:100%}}@media(max-width:430px){.metric-row,.person-metrics,.passport-grid{grid-template-columns:1fr}.customer-team>div{grid-template-columns:36px 1fr}.month-control.compact{width:100%}.section-title{flex-direction:column}.worktime-head{align-items:flex-start;flex-direction:column}.worktime-fields{grid-template-columns:1fr}.calendar-days{grid-template-columns:repeat(7,minmax(36px,1fr))}}.legend .fact-legend,.legend .plan-legend{width:18px;height:10px;border-radius:3px;background:#2877b7}.legend .plan-legend{opacity:.38}.day-cell.assigned.plan{opacity:.42;filter:saturate(.78)}.day-cell.assigned.fact{opacity:1}.day-cell.assigned.worked-holiday{outline:2px solid #d75a63;outline-offset:-3px}.timeline-row .fill.plan{opacity:.42}.timeline-row .fill.fact{opacity:1}.day-cell.assigned.vacation_paid,.timeline-row .fill.vacation_paid{color:#654b12;background:#eeb94c}.day-cell.assigned.vacation_unpaid,.timeline-row .fill.vacation_unpaid{color:#5f6670;background:repeating-linear-gradient(135deg,#e4e7eb 0 5px,#cfd4da 5px 10px)}.day-cell.assigned.day_off,.timeline-row .fill.day_off{color:#405164;background:#cbd5df}.coefficient-controls{display:flex;flex-wrap:wrap;align-items:end;gap:8px}.coefficient-controls label{display:grid;gap:4px}.coefficient-controls label span{color:var(--muted);font-size:8px;font-weight:700}.coefficient-controls input{width:94px;height:38px;border:1px solid var(--line);border-radius:8px;padding:0 9px;background:#fff;color:var(--ink)}.coefficient-controls input:disabled{background:#f4f6f8;color:#7d8795}.sticky-ts{left:0}.ts-cell.project-name-cell{padding:6px 9px;justify-content:flex-start;color:#526173;font-size:9px}.ts-cell.project-name-cell b{font-size:9px}.ts-cell.plan-column,.ts-head.plan-column{background:#f7f8fa;color:#b0b6bf}.ts-row.employee-total>.ts-cell{background:#eef4fb;font-weight:800;border-top:2px solid #c9d7e8}.role-matrix{grid-template-columns:repeat(4,1fr)}@media(max-width:1050px){.role-matrix{grid-template-columns:repeat(2,1fr)}}.project-access.automatic{display:grid;gap:6px}.project-access.automatic small{color:var(--muted);line-height:1.35}.interval-options,.period-row{display:grid;grid-template-columns:1fr 1fr;gap:13px}.period-row label{display:grid;gap:6px}.period-row label>span{color:#697488;font-size:10px;font-weight:600}.period-row input:disabled{background:#f5f7fa;color:#8a95a5}.calendar-mode-picker{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px;padding:8px;border-radius:9px;background:#f7f9fc}.mode-btn{display:inline-flex;align-items:center;gap:5px;min-height:30px;border:1px solid #d9e1eb;border-radius:7px;padding:5px 8px;background:#fff;color:#5e6b7d;font-size:8px;font-weight:700}.mode-btn i{width:9px;height:9px;border-radius:2px;background:#2877b7}.mode-btn.active{border-color:#2877b7;box-shadow:0 0 0 2px #2877b71f;color:#1e5f95}.mode-btn.holiday i{background:#d75a63}.mode-btn.off i{background:#9aa5b3}.mode-btn.day_off i{background:#aebdca}.mode-btn.vacation_paid i{background:#eeb94c}.mode-btn.vacation_unpaid i{background:#c7ccd3}.mode-btn.sick i{background:#b98ad9}.calendar-day.day_off{background:#eef3f7;border-color:#b9c7d3;color:#41556a}.calendar-day.day_off small{background:#8296aa}.calendar-day.vacation_paid{background:#fff8e7;border-color:#e6bd5d;color:#76550c}.calendar-day.vacation_paid small{width:24px;background:#d9a62f}.calendar-day.vacation_unpaid{background:repeating-linear-gradient(135deg,#f4f5f7 0 6px,#e7e9ed 6px 12px);border-color:#c4cad2;color:#626b77}.calendar-day.vacation_unpaid small{width:24px;background:#8e98a5}.calendar-day.sick{background:#f8f1fc;border-color:#c9a6df;color:#6d4485}.calendar-day.sick small{width:24px;background:#9a69b8}.day-cell.day-absence.vacation_paid{background:#eeb94c!important;color:#654b12!important}.day-cell.day-absence.vacation_unpaid{background:repeating-linear-gradient(135deg,#e4e7eb 0 5px,#cfd4da 5px 10px)!important;color:#5f6670!important}.day-cell.day-absence.day_off{background:#cbd5df!important;color:#405164!important}.day-cell.day-absence.sick{background:#d8b8e8!important;color:#56346b!important}.day-cell.day-absence .day-marker{color:inherit;font-weight:900}.notification-box{border:1px solid #d8e4ef;border-radius:10px;padding:13px;background:#f8fbfe;display:grid;gap:10px}.notification-title{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.notification-title b,.notification-title span{display:block}.notification-title b{font-size:11px}.notification-title span{margin-top:3px;color:var(--muted);font-size:9px}.notification-check{display:flex!important;grid-template-columns:none!important;align-items:flex-start;gap:9px!important;border:1px solid #dce5ee;border-radius:9px;background:#fff;padding:10px}.notification-check input{width:17px!important;height:17px;min-height:17px!important;margin-top:2px;accent-color:var(--accent)}.notification-check>span{display:grid;gap:3px;color:var(--ink)!important;font-size:10px!important}.notification-check small{color:var(--muted);font-size:9px;font-weight:500}.notification-foot{display:flex;align-items:center;justify-content:space-between;gap:12px}.notification-foot>small{color:var(--muted);font-size:8px;line-height:1.4}.secondary.compact{min-height:32px;padding:5px 9px;white-space:nowrap}.mail-status{border-radius:999px;padding:5px 8px;font-size:8px;font-style:normal;font-weight:800;background:#eef2f6;color:#657284}.mail-status.sent{background:#e8f5ec;color:#36734a}.mail-status.failed{background:#fdeced;color:#a33f49}.mail-status.queued{background:#eaf3fb;color:#2f6e9d}.mail-status.skipped{background:#f4f0e8;color:#796443}@media(max-width:760px){.interval-options,.period-row{grid-template-columns:1fr}.notification-title,.notification-foot{flex-direction:column;align-items:stretch}.calendar-mode-picker{display:grid;grid-template-columns:1fr 1fr}}.timeline-row .fill.day-vacation_paid{background:#eeb94c}.timeline-row .fill.day-vacation_unpaid{background:#cfd4da}.timeline-row .fill.day-day_off{background:#aebdca}.timeline-row .fill.day-sick{background:#b98ad9}.day-cell .day-marker.marker-working-weekend,.person-timeline-day .day-marker.marker-working-weekend{border-color:#77a8d1;color:#175e96;background:#eef7ff}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,minmax(48px,1fr));gap:6px;margin:0 0 5px}.calendar-weekdays span{padding:2px 0;color:#8994a5;font-size:8px;font-weight:800;text-align:center}.calendar-spacer{min-height:1px}.calendar-day.working_weekend{border-color:#74a8d4;background:#eef7ff;color:#185f98}.calendar-day.working_weekend small{width:24px;background:#2877b7}.calendar-day.calendar_weekend{border-color:#e1e5ea;background:#f6f7f9;color:#98a2b0}.calendar-day.calendar_weekend small{background:#b0b8c3}.calendar-day.clear{border-style:dashed;border-color:#d1d8e1;background:#fff;color:#9aa4b2}.calendar-day.clear small{background:#aab3bf}.mode-btn.working_weekend i{border:2px solid #2877b7;background:#dfeefa}.mode-btn.clear{margin-left:auto;border-style:dashed}.mode-btn.clear i{background:#aab3bf}.reset-form-btn{margin-right:auto}.person-metrics .hours-metric{position:relative;overflow:hidden}.person-metrics .hours-metric:before{content:"";position:absolute;inset:0 auto 0 0;width:4px}.person-metrics .fact-hours:before{background:#4b9b78}.person-metrics .plan-hours:before{background:#79a8d4}.timeline-head>*,.timeline-row>*{min-height:42px}.timeline-row button.person-timeline-day{position:relative;min-height:42px;color:#fff;display:grid;place-items:center;overflow:hidden}.timeline-row button.person-timeline-day.weekend:not(.assigned){color:#9aa3b1}.timeline-row button.person-timeline-day.assigned{box-shadow:inset 0 5px #fff,inset 0 -5px #fff}.timeline-row button.person-timeline-day.assigned.site{background:#2877b7!important}.timeline-row button.person-timeline-day.assigned.office{color:#174e52;background:repeating-linear-gradient(135deg,#cde9e8 0 5px,#a9d6d4 5px 10px)!important}.timeline-row button.person-timeline-day.assigned.remote{color:#4d3674;background:repeating-linear-gradient(135deg,#e6ddf2 0 5px,#d1c2e6 5px 10px)!important}.timeline-row button.person-timeline-day.day-absence.vacation_paid{color:#654b12;background:#eeb94c!important}.timeline-row button.person-timeline-day.day-absence.vacation_unpaid{color:#5f6670;background:repeating-linear-gradient(135deg,#e4e7eb 0 5px,#cfd4da 5px 10px)!important}.timeline-row button.person-timeline-day.day-absence.day_off{color:#405164;background:#cbd5df!important}.timeline-row button.person-timeline-day.day-absence.sick{color:#56346b;background:#d8b8e8!important}.timeline-row button.person-timeline-day.worked-holiday{outline:2px solid #d75a63;outline-offset:-3px}.timeline-row button.person-timeline-day.plan{opacity:.42;filter:saturate(.78)}.timeline-row button.person-timeline-day.fact{opacity:1}.person-day-hours{font-size:9px;font-weight:900}.person-timeline-day .day-marker{position:absolute;right:2px;top:2px;z-index:5;min-width:13px;height:13px;padding:0 2px;border:1px solid rgba(255,255,255,.9);border-radius:4px;background:#ffffffeb;color:#42536a;display:inline-flex;align-items:center;justify-content:center;font-size:6px;font-weight:900;line-height:1;box-shadow:0 1px 3px #10233724}.person-timeline-day .day-marker.marker-holiday{border-color:#e09aa0;color:#b63e49}.person-timeline-day .day-marker.marker-day_off{border-color:#b8c5d1;color:#43586e}.person-timeline-day .day-marker.marker-vacation_paid{border-color:#e5c878;color:#78560a}.person-timeline-day .day-marker.marker-vacation_unpaid{border-color:#c6cbd2;color:#59636f}.person-timeline-day .day-marker.marker-sick{border-color:#c8abd9;color:#6b4481}.person-timeline-day.conflict:after,.person-timeline-day.overtime:after{content:"!";position:absolute;left:2px;top:2px;z-index:6;width:13px;height:13px;border:2px solid #fff;border-radius:50%;display:grid;place-items:center;font-size:7px;font-weight:900}.person-timeline-day.conflict:after{background:var(--danger);color:#fff}.person-timeline-day.overtime:after{background:#f3c94c;color:#523e00}@media(max-width:760px){.calendar-weekdays{grid-template-columns:repeat(7,minmax(40px,1fr))}.calendar-days{overflow-x:auto}.mode-btn.clear{margin-left:0}}@media(max-width:430px){.calendar-weekdays{grid-template-columns:repeat(7,minmax(36px,1fr))}}:root{color-scheme:dark;--ink: #f2f4f7;--muted: #9ca6b3;--line: #383d43;--soft-line: #30343a;--bg: #17191b;--nav: #181a1c;--nav-soft: #34445f;--accent: #639cf6;--accent-dark: #4b86e4;--blue: #347fca;--violet: #8c6ed1;--amber: #c9943d;--green: #3a9b79;--rose: #d2647e;--cyan: #438fa6;--slate: #68778b;--danger: #ef5964;--shadow: 0 16px 38px rgba(0,0,0,.22)}html,body{background:#17191b}body{background:radial-gradient(circle at 82% 4%,rgba(99,156,246,.1),transparent 25%),linear-gradient(135deg,#1a1c1f,#17191b 58%,#151719);color:var(--ink)}.sidebar{background:#202224;border-right:1px solid #33373c;box-shadow:8px 0 28px #0000002e}.brand.brand-home{width:100%;border:1px solid transparent;border-radius:11px;padding:9px 8px 11px;background:transparent;color:#fff;display:flex;align-items:center;gap:12px;text-align:left;transition:background .16s ease,border-color .16s ease,transform .16s ease}.brand.brand-home:hover{background:#2a2d31;border-color:#3b4148;transform:translateY(-1px)}.brand.brand-home:active{transform:translateY(0)}.brand.brand-home:focus-visible{outline-color:#639cf6a6}.brand-logo{background-color:#f6f8fb;border:1px solid #dfe5ec;box-shadow:0 5px 14px #00000038}.brand b{color:#fff;font-size:17px;letter-spacing:1.8px}.brand span,.profile span{color:#9aa4b2}.local-chip{background:#1b2a2b;border-color:#285b55;color:#cde8df}.local-chip.server{border-color:#26695d;background:#1a5a4c29}.sidebar nav button{color:#b0b6bf}.sidebar nav button:hover{background:#2a2d31;color:#fff}.sidebar nav button.active{background:#354a68;color:#fff;box-shadow:inset 3px 0 #6aa3ff}.sidebar nav button em{background:#30343a;color:#cdd3db}.side-label{color:#707985}.profile{border-top-color:#34383d}.profile .logout-link{color:#8fb9f5}.content{background-color:#191b1e;background-image:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px)}.topbar{background:#1f2124f5;border-bottom-color:#35393f;box-shadow:0 6px 20px #0000001a}.topbar h1{color:#f7f8fa}.topbar p,.panel-head p,.section-title p{color:#98a2af}.primary,.secondary,.icon-btn,.danger-btn{border-color:#40454c;background:#292c30;color:#d9dee5}.primary{border-color:#568fe8;background:#568fe8;color:#fff;box-shadow:0 5px 14px #417edc38}.primary:hover{background:#669ff7}.secondary:hover,.icon-btn:hover{background:#34383e;color:#fff}.danger-btn{border-color:#69383d;background:#2d2426;color:#ff8d94}.danger-btn:hover{background:#3a282b}.month-control,.search,.filters select,.field-inline select,.field-inline input,.coefficient-controls input{border-color:#3c4147;background:#25282c;color:#e9ecf1}.month-control button{background:#25282c;color:#b5bdc9}.month-control button:hover{background:#30343a}.search input{color:#f1f3f6}.search input::placeholder,input::placeholder,textarea::placeholder{color:#717b88}.filters select{color:#cdd3db}.metric-row article,.panel,.list-panel,.detail-panel{border-color:#383d43;background:#24272a;box-shadow:0 10px 28px #0000001a}.metric-row article>span,.metric-row article>i{color:#929ca9}.progress{background:#34383d}.panel-head{border-bottom-color:#383d43}.legend{color:#9aa4b0}.name-head,.day-head{border-color:#393e44;background:#212428}.day-head{border-left-color:#34383e}.day-head span{color:#818b99}.weekend{background:#202327!important;color:#77818e}.project-group-head{border-color:#3a3f45;background:#2b2e32;color:#edf0f4}.project-group-head:hover{background:#32363b}.project-group-head.absence-head{background:#302d28}.project-group-head.unassigned-head{background:#292c30}.person-cell{border-color:#363b41;background:#24272a;color:#edf0f4}.person-cell:hover{background:#2c3034}.day-cell{border-color:#34393f;background:#222529}.day-cell:not(.assigned):hover{background:#2d3a4b!important}.day-cell.assigned,.day-cell.marked{box-shadow:inset 0 5px #24272a,inset 0 -5px #24272a}.day-cell.marked.off{background:#2b2e32!important;color:#8e98a5}.day-cell.marked.holiday{background:#37272a!important;color:#ff9ba2;box-shadow:inset 0 5px #24272a,inset 0 -5px #24272a,inset 0 0 0 2px #c86169}.day-cell .day-marker,.person-timeline-day .day-marker{border-color:#ffffff47;background:#16191de0;color:#f0f3f7;box-shadow:0 1px 4px #00000040}.project-list-item,.person-list-item{background:transparent;color:#e9edf2;border-color:#363b41}.project-list-item:hover,.project-list-item.active,.person-list-item:hover,.person-list-item.active{background:#2d3136}.project-list-item.active,.person-list-item.active{border-color:#4d6f9d;box-shadow:inset 3px 0 #639cf6}.detail-panel,.list-panel{color:#edf0f4}.object-title,.person-hero{border-color:#393e44}.object-title p,.person-hero p{color:#98a2af}.passport-grid article{border-color:#383d43;background:#292c30}.team-strip article{border-color:#393e44;background:#292c30}.contact-row{color:#9da7b4}.week-grid{border-color:#393e44}.week-grid>div{border-color:#383d43;background:#26292d}.week-slot{color:#9da6b2}.timeline-head>span{background:#202327;color:#8c96a3}.timeline-head>*,.timeline-row>*{border-color:#373c42}.timeline-row button{background:#24272a;color:#e8ecf1}.timeline-row button:hover{background:#2c3035}.assignment-cards>button{border-color:#393e44;background:#292c30;color:#edf0f4}.assignment-cards>button:hover{border-color:#536176;background:#30343a}.timesheet-grid,.timesheet-scroll{border-color:#393e44;background:#23262a}.ts-cell,.ts-head,.ts-person{border-color:#383d43!important}.ts-cell input{color:#edf0f4}.ts-cell input:hover,.ts-cell input:focus{border-color:#536176;background:#2f3338}.approval-list>article,.account-list>article{border-color:#393e44;background:#26292d}.account-list select{border-color:#3d4248;background:#292c30;color:#e8ecf1}.account-person input{color:#edf0f4}.modal-backdrop{background:#05070abd;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.modal{border:1px solid #3c4147;background:#24272a;color:#f0f2f5;box-shadow:0 30px 90px #0000007a}.modal-head{border-color:#3a3f45}.modal-head>button{background:#30343a;color:#b7c0cb}.form-grid label>span{color:#a3acb8}.form-grid input,.form-grid select,.form-grid textarea{border-color:#3e444b;background:#202327;color:#f0f2f5}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:#638fd0}.form-grid input:disabled,.period-row input:disabled,.coefficient-controls input:disabled{background:#292c30;color:#7f8996}.assignment-calendar{border-color:#3b4147;background:#202327}.calendar-mode-picker{background:#292c30}.calendar-mode-btn{border-color:#40464d!important;background:#25282c!important;color:#cdd4dd!important}.calendar-mode-btn.active{border-color:#639cf6!important;background:#354a68!important;color:#fff!important}.calendar-weekdays span{color:#7f8996}.calendar-day{border-color:#3c4249;background:#282b2f;color:#e8ebef}.calendar-day:hover{box-shadow:0 5px 14px #00000040}.calendar-day.calendar_weekend{border-color:#363b41;background:#222529;color:#78828e}.calendar-day.clear{border-color:#4a5057;background:#24272a;color:#929ca8}.calendar-day.working_weekend{border-color:#4f85ba;background:#26394c;color:#a9d6ff}.calendar-day.holiday{border-color:#b1535b;background:#37262a;color:#ffadb3}.calendar-day.day_off{background:#2a3036;border-color:#52606e;color:#c2d1df}.calendar-day.vacation_paid{background:#3b3422;border-color:#8f7133;color:#f0ce79}.calendar-day.vacation_unpaid{background:repeating-linear-gradient(135deg,#2b2d31 0 6px,#24262a 6px 12px);border-color:#4b5057;color:#a9b0ba}.calendar-day.sick{background:#342b3a;border-color:#725387;color:#d1afe5}.form-alert.info{border-color:#405775;background:#263240;color:#b6cce8}.form-alert.warning{border-color:#6e5a2b;background:#342f22;color:#e3c774}.form-alert.error{border-color:#6b3539;background:#382629;color:#ff9aa1}.modal-actions{border-color:#3b4046}.login-page{background:radial-gradient(circle at 50% 0%,rgba(99,156,246,.12),transparent 34%),#17191b}.login-card{border:1px solid #383d43;background:#24272a;color:#eef1f5;box-shadow:0 24px 72px #0000005c}.login-brand b,.login-card h1{color:#fff}.login-brand span,.login-card p,.login-card>small,.login-card label span{color:#9ba5b2}.login-card input{border-color:#3d434a;background:#1f2226;color:#f1f3f6}.server-chip{background:#20352f;color:#88d5bd}@media(max-width:1040px){.brand.brand-home{justify-content:center;padding-inline:6px}}:root{--v524-bg: #191c20;--v524-panel: #24282d;--v524-panel-2: #202429;--v524-line: #3a4149;--v524-text: #eef2f7;--v524-muted: #a8b2bf;--v524-blue: #5f9df5}.icon-btn.active,.notify.active{border-color:#ca646b;background:#3a292c;color:#ffd6d9;box-shadow:0 0 0 2px #db51511f}.metric-row>.metric-action{min-height:104px;border:1px solid #383d43;border-radius:11px;padding:15px 16px;background:#24272a;color:var(--v524-text);box-shadow:0 10px 28px #0000001a;text-align:left;display:block;position:relative}.metric-row>.metric-action:hover{border-color:#536176;background:#292d32;transform:translateY(-1px)}.metric-row>.metric-action.active{border-color:#609df2;box-shadow:inset 0 0 0 1px #609df2,0 10px 28px #00000026}.metric-row>.metric-action.warning-metric.active{border-color:#d8666e;box-shadow:inset 0 0 0 1px #d8666e}.metric-row>.metric-action>span{display:block;color:#a8b2bf;font-size:11px}.metric-row>.metric-action>b{display:block;margin:7px 0 6px;color:#fff;font-size:26px;line-height:1}.metric-row>.metric-action>i{display:block;color:#a8b2bf;font-size:10px;font-style:normal}.metric-row>.metric-action>i.danger{color:#ff777f}.metric-row>.metric-action>i.ok{color:#75d4ad}.metric-row>.metric-action>small{position:absolute;right:12px;bottom:10px;color:#738090;font-size:8px}.active-filter-banner{margin:-7px 0 18px;border:1px solid #3f5877;border-radius:9px;padding:9px 12px;background:#253141;color:#dbe9fb;display:flex;align-items:center;gap:10px}.active-filter-banner b{font-size:10px}.active-filter-banner span{flex:1;color:#a9bad0;font-size:9px}.active-filter-banner button{border:0;background:transparent;color:#91baf2;font-size:9px;font-weight:700}.day-cell.assigned.site,.timeline-row button.person-timeline-day.assigned.site,.object-timeline-day.assigned.site{background:#2b72b5!important;color:#fff!important}.day-cell.assigned.office,.timeline-row button.person-timeline-day.assigned.office,.object-timeline-day.assigned.office{background:repeating-linear-gradient(135deg,#245b5d 0 5px,#1e4f51 5px 10px)!important;color:#d9ffff!important}.day-cell.assigned.remote,.timeline-row button.person-timeline-day.assigned.remote,.object-timeline-day.assigned.remote{background:repeating-linear-gradient(135deg,#554078 0 5px,#49366b 5px 10px)!important;color:#f4eaff!important}.day-cell.day-absence.vacation_paid,.timeline-row button.person-timeline-day.day-absence.vacation_paid,.object-timeline-day.day-absence.vacation_paid{background:#8b6924!important;color:#fff0bd!important}.day-cell.day-absence.vacation_unpaid,.timeline-row button.person-timeline-day.day-absence.vacation_unpaid,.object-timeline-day.day-absence.vacation_unpaid{background:repeating-linear-gradient(135deg,#444950 0 5px,#393e44 5px 10px)!important;color:#e7ebf0!important}.day-cell.day-absence.day_off,.timeline-row button.person-timeline-day.day-absence.day_off,.object-timeline-day.day-absence.day_off{background:#42505e!important;color:#e7f1fa!important}.day-cell.day-absence.sick,.timeline-row button.person-timeline-day.day-absence.sick,.object-timeline-day.day-absence.sick{background:#654477!important;color:#f7e9ff!important}.day-cell.plan,.person-timeline-day.plan,.object-timeline-day.plan{opacity:.68!important;filter:saturate(.82)}.day-cell.fact,.person-timeline-day.fact,.object-timeline-day.fact{opacity:1!important}.day-cell.assigned,.timeline-row button.person-timeline-day.assigned,.object-timeline-day.assigned{box-shadow:inset 0 4px #ffffff0a,inset 0 -4px #0000001f}.personal-timeline{border-color:var(--v524-line);background:var(--v524-panel-2)}.timeline-head>span,.timeline-row>span,.timeline-head b,.timeline-row button{border-color:#353b42!important;background:#22262b!important;color:#dce2e9!important}.timeline-head>span,.timeline-head b{background:#1f2328!important;color:#aab4c0!important}.timeline-head b.weekend{color:#7f8995!important}.timeline-row>span{color:#eef2f7!important}.timeline-row>span b{color:#e9edf2}.timeline-row button.person-timeline-day:not(.assigned){background:#23272c!important;color:#8c96a3!important}.timeline-row button.person-timeline-day.weekend:not(.assigned){background:#1f2327!important;color:#6f7986!important}.timeline-row button.person-timeline-day:hover{outline:1px solid #5d82b2;outline-offset:-1px}.assignment-modal{background:#23272c}.assignment-modal .worktime-block,.assignment-modal .notification-box,.assignment-modal .notification-check,.assignment-modal .checkbox-field .checkbox-line{border-color:#3b424a;background:#202429;color:#e7ecf2}.assignment-modal .worktime-head b,.assignment-modal .notification-title b,.assignment-modal .notification-check b{color:#f0f3f7}.assignment-modal .worktime-head span,.assignment-modal .notification-title span,.assignment-modal .notification-check small,.assignment-modal .notification-foot>small{color:#a5afbc}.assignment-modal .worktime-head strong{background:#263b50;color:#a9d5ff}.assignment-modal .worktime-fields label span{color:#aeb7c3}.assignment-modal .notification-check>span{color:#eef2f6!important}.mode-btn{border-color:#414850;background:#272b30;color:#c8d0da}.mode-btn:hover{border-color:#5e6a78;background:#2d3238;color:#fff}.mode-btn.active{border-color:#72a9f5!important;background:#314c70!important;color:#fff!important;box-shadow:0 0 0 2px #5f9df53d,inset 0 0 0 1px #ffffff14!important}.mode-btn.active i{box-shadow:0 0 0 2px #ffffff40}.mode-btn.clear.active{border-color:#98a3af!important;background:#3a4148!important}.timesheet-panel,.timesheet-scroll,.timesheet-grid{background:#22262a}.ts-head{background:#1e2227!important;color:#b7c1ce!important}.ts-head small{color:#7f8a98!important}.ts-cell{background:#25292e!important;color:#dfe5ec!important}.ts-cell.person-name b{color:#f0f3f6!important}.ts-cell.role-cell{color:#b7c1cc!important}.ts-cell.project-name-cell,.ts-cell.project-name-cell b{color:#d6e3f4!important}.ts-cell.plan-column,.ts-head.plan-column{background:#202429!important;color:#788390!important}.ts-row.employee-total>.ts-cell{background:#29374a!important;color:#e7f1ff!important;border-top:2px solid #4f78aa!important}.ts-row.employee-total>.ts-cell b{color:#f4f8ff!important}.ts-cell.total,.ts-head.total{background:#273244!important;color:#e9f2ff!important}.timesheet-summary{background:#29313b;color:#b9c5d3}.access-note{border-color:#3c4a5b;background:#26303b;color:#b7c6d7}.access-note b{color:#eef4fb}.object-layout-v524{grid-template-columns:270px minmax(0,1fr);gap:14px}.object-list-panel{background:#22262a}.object-detail-v524{padding:18px;background:#22262a}.object-hero-v524{padding-bottom:16px}.object-passport-v524{background:#383e45}.object-passport-v524 article{background:#282c31}.object-team-v524{margin-bottom:16px}.object-team-v524 article{min-height:64px;color:#eef2f7}.object-team-v524 article b{color:#f2f5f8}.object-team-v524 article span{color:#b2bcc8}.object-team-v524 article i{color:#7faaf0}.object-schedule-panel{border:1px solid #394047;border-radius:11px;background:#1f2327;overflow:hidden}.object-schedule-head{padding:14px 15px;border-bottom:1px solid #394047;display:flex;align-items:center;justify-content:space-between;gap:14px}.object-schedule-head h3{margin:0 0 4px;color:#f1f4f7;font-size:14px}.object-schedule-head p{margin:0;max-width:650px;color:#99a5b3;font-size:9px;line-height:1.45}.object-schedule-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:7px}.range-tabs{border:1px solid #3b424a;border-radius:8px;padding:3px;background:#25292e;display:flex}.range-tabs button{min-height:30px;border:0;border-radius:6px;padding:5px 10px;background:transparent;color:#9da8b6;font-size:9px;font-weight:700}.range-tabs button:hover{color:#fff;background:#30363c}.range-tabs button.active{background:#3769aa;color:#fff;box-shadow:0 3px 9px #2e69b53d}.range-nav{min-height:36px;border:1px solid #3b424a;border-radius:8px;background:#25292e;display:flex;align-items:center;overflow:hidden}.range-nav button{width:32px;align-self:stretch;border:0;background:transparent;color:#adb7c4;font-size:18px}.range-nav button:hover{background:#30363c;color:#fff}.range-nav b{min-width:135px;padding:0 8px;color:#e9edf2;font-size:9px;text-align:center;text-transform:capitalize}.object-timeline-scroll{overflow:auto;max-height:540px;background:#202429}.object-timeline-grid{display:grid;min-width:max-content;position:relative}.object-timeline-person,.object-date-head,.object-timeline-day{min-height:44px;border-right:1px solid #343a41;border-bottom:1px solid #343a41}.object-timeline-person{position:sticky;left:0;z-index:5;border-left:0;padding:6px 10px;background:#24292e;color:#e9edf2;display:flex;align-items:center;gap:8px;text-align:left}.object-timeline-person.head{top:0;z-index:9;min-height:52px;background:#1e2227;color:#9da8b5;font-size:9px;text-transform:uppercase}.object-timeline-person span{min-width:0}.object-timeline-person b,.object-timeline-person small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.object-timeline-person b{color:#edf1f5;font-size:9px}.object-timeline-person small{margin-top:2px;color:#929daa;font-size:7px}.object-date-head{position:sticky;top:0;z-index:7;padding:4px 2px;background:#1e2227;color:#9da7b4;display:grid;place-content:center;text-align:center}.object-date-head span{font-size:7px;text-transform:uppercase}.object-date-head b{color:#dce2e9;font-size:9px}.object-date-head small{color:#6f7d8c;font-size:6px;text-transform:uppercase}.object-date-head.weekend{background:#1b1f23!important;color:#687482}.object-date-head.today{box-shadow:inset 0 -2px #5f9df5}.object-timeline-day{position:relative;border-top:0;border-left:0;padding:0;background:#22262b;color:#87919e;display:grid;place-items:center}.object-timeline-day.weekend:not(.assigned){background:#1f2327}.object-timeline-day:not(.assigned):hover{background:#2b3542;box-shadow:inset 0 0 0 1px #5578a3}.object-timeline-day>span{font-size:9px;font-weight:900}.object-timeline-day .day-marker{position:absolute;right:2px;top:2px;min-width:14px;height:14px;border:1px solid rgba(255,255,255,.28);border-radius:4px;padding:0 2px;background:#13171be6;color:#f3f6f9;display:grid;place-items:center;font-size:6px;font-weight:900}.object-timeline-day.worked-holiday{outline:2px solid #d8666e;outline-offset:-3px}.compact-empty{margin:12px;border:1px dashed #3d454e;background:#23282d}@media(max-width:1250px){.object-schedule-head{align-items:flex-start;flex-direction:column}.object-schedule-actions{width:100%;justify-content:flex-start}}.project-group-head.available-head{background:#24322d;border-color:#3e5f51;color:#dff6eb}.project-group-head.available-head em{margin-left:auto;color:#78cfa7;font-style:normal;font-size:9px}.multi-filter{position:relative;min-width:220px}.multi-filter>summary{height:40px;border:1px solid #3c4147;border-radius:8px;padding:0 10px 0 12px;background:#25282c;color:#e4e8ee;display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}.multi-filter>summary::-webkit-details-marker{display:none}.multi-filter>summary:hover,.multi-filter[open]>summary{border-color:#5d83b8;background:#2b3036;color:#fff}.multi-filter>summary span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.multi-filter[open]>summary .icon{transform:rotate(90deg)}.multi-filter-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:90;width:min(340px,78vw);max-height:390px;border:1px solid #46505c;border-radius:10px;background:#202429;color:#edf1f6;box-shadow:0 18px 48px #0000006b;overflow:hidden}.multi-filter-menu-head,.multi-filter-footer{padding:9px 10px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:#272c32}.multi-filter-menu-head{border-bottom:1px solid #39414a}.multi-filter-footer{border-top:1px solid #39414a;color:#9da9b7;font-size:9px}.multi-filter-menu-head b{font-size:10px;color:#f3f6f9}.multi-filter-menu-head button,.multi-filter-footer button{border:0;background:transparent;color:#79aef7;font-size:9px;font-weight:700;cursor:pointer}.multi-filter-menu-head button:hover,.multi-filter-footer button:hover{color:#a9ccff}.multi-filter-options{max-height:290px;padding:6px;overflow:auto}.multi-filter-options label{min-height:34px;border:1px solid transparent;border-radius:7px;padding:6px 8px;display:flex;align-items:center;gap:8px;color:#cbd3dd;cursor:pointer}.multi-filter-options label:hover{background:#2a3036;color:#fff}.multi-filter-options label.checked{border-color:#456b9c;background:#293b51;color:#f3f8ff}.multi-filter-options input{width:15px;height:15px;margin:0;accent-color:#639cf6;flex:0 0 auto}.multi-filter-options span{line-height:1.25}@media(max-width:1040px){.multi-filter{width:100%;min-width:0}.multi-filter-menu{left:0;right:auto;width:min(420px,calc(100vw - 42px))}}.undo-btn{font-size:20px!important;font-weight:900;line-height:1}.undo-btn:disabled{opacity:.35;cursor:default}.assignment-v53{width:min(980px,calc(100vw - 28px));max-height:calc(100vh - 28px);overflow:auto;background:#1f2328;border-color:#3d4650}.assignment-principle{margin:0 0 12px;padding:10px 12px;border:1px solid #344b66;border-radius:9px;background:#223144;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.assignment-principle b{color:#f1f6fd;font-size:11px}.assignment-principle span{color:#a9b8c9;font-size:9px}.quick-assignment-grid{display:grid;grid-template-columns:1.4fr 1.4fr .9fr .9fr .8fr;gap:10px}.quick-assignment-grid label,.advanced-assignment-grid label{display:grid;gap:5px}.quick-assignment-grid label>span,.advanced-assignment-grid label>span{color:#aeb8c4;font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.quick-assignment-grid input,.quick-assignment-grid select,.advanced-assignment-grid input,.advanced-assignment-grid select,.advanced-assignment-grid textarea{min-height:39px;border:1px solid #414a54;border-radius:8px;background:#272c32;color:#edf2f7}.quick-assignment-grid input:focus,.quick-assignment-grid select:focus,.advanced-assignment-grid input:focus,.advanced-assignment-grid select:focus,.advanced-assignment-grid textarea:focus{outline:none;border-color:#669be0;box-shadow:0 0 0 2px #5791e029}.template-bar{margin:12px 0;padding:9px;border:1px solid #394149;border-radius:9px;background:#24292f;display:flex;align-items:center;gap:7px;flex-wrap:wrap}.template-bar>span{margin-right:3px;color:#8f9baa;font-size:8px;font-weight:800;text-transform:uppercase}.template-bar button{min-height:30px;border:1px solid #424b56;border-radius:7px;padding:5px 9px;background:#2b3137;color:#c9d3df;font-size:8px;font-weight:700;cursor:pointer}.template-bar button:hover{border-color:#668fc4;background:#304159;color:#fff}.edit-scope-note{margin-bottom:10px;padding:9px 11px;border-left:3px solid #5e9ce8;background:#242d38;display:grid;gap:2px}.edit-scope-note b{color:#e9f2ff;font-size:9px}.edit-scope-note span{color:#93a2b3;font-size:8px}.advanced-toggle{width:100%;min-height:34px;border:1px solid #394149;border-radius:8px;padding:6px 10px;background:#24292f;color:#b7c1cc;display:flex;align-items:center;justify-content:space-between;font-size:9px;font-weight:700;cursor:pointer}.advanced-toggle:hover,.advanced-toggle.active{border-color:#4f7096;background:#283545;color:#e9f2ff}.advanced-assignment-grid{margin-top:9px;padding:10px;border:1px solid #394149;border-radius:9px;background:#22272d;display:grid;grid-template-columns:1fr 2fr;gap:10px}.advanced-assignment-grid .full{grid-column:1 / -1}.compact-worktime{margin:0}.series-calendar{margin-top:12px;background:#20252a!important}.series-calendar .calendar-head{align-items:center}.calendar-nav{display:flex;align-items:center;gap:5px}.calendar-nav button{min-height:29px;border:1px solid #414a54;border-radius:6px;padding:4px 8px;background:#292f35;color:#c8d2de;cursor:pointer}.calendar-nav button:hover{border-color:#6088ba;color:#fff}.calendar-day.outside{opacity:.24;filter:grayscale(1);cursor:not-allowed}.calendar-day.range-start{box-shadow:inset 0 0 0 2px #76abf5,0 0 0 1px #76abf547!important}.calendar-help{margin-top:8px;color:#8996a5;font-size:8px}.calendar-help span{color:#b7c4d2;font-weight:700}.compact-notification{margin-top:10px}.v53-actions{position:sticky;bottom:-1px;z-index:5;margin:12px -18px -18px;padding:10px 18px;border-top:1px solid #394149;background:#1f2328f5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.remove-menu{margin-right:auto;display:flex;gap:6px;flex-wrap:wrap}@media(max-width:1180px){.quick-assignment-grid{grid-template-columns:1fr 1fr}.advanced-assignment-grid{grid-template-columns:1fr}.advanced-assignment-grid .full{grid-column:auto}}@media(max-width:680px){.quick-assignment-grid{grid-template-columns:1fr}.v53-actions{align-items:stretch}.remove-menu{width:100%}}.undo-cluster{display:flex;align-items:center;position:relative}.undo-cluster .undo-btn{border-radius:8px 0 0 8px}.undo-history{position:relative}.undo-history>summary{width:23px;height:40px;border:1px solid #3d4752;border-left:0;border-radius:0 8px 8px 0;background:#252a30;color:#99a7b7;display:grid;place-items:center;cursor:pointer;list-style:none}.undo-history>summary::-webkit-details-marker{display:none}.undo-history[open]>summary,.undo-history>summary:hover{background:#303943;color:#fff}.undo-history-menu{position:absolute;top:calc(100% + 7px);right:0;z-index:120;width:330px;max-height:390px;padding:8px;border:1px solid #48535f;border-radius:10px;background:#20252a;box-shadow:0 18px 50px #0000007a;overflow:auto}.undo-history-menu>b{display:block;padding:6px 7px 9px;color:#f1f5fa;font-size:9px}.undo-history-menu>button{width:100%;min-height:42px;border:0;border-top:1px solid #343b43;padding:7px;background:transparent;color:#dce4ed;display:flex;justify-content:space-between;gap:10px;text-align:left;cursor:pointer}.undo-history-menu>button:hover{background:#293541}.undo-history-menu>button span{font-size:8px;line-height:1.3}.undo-history-menu>button small{color:#7f8c9b;font-size:7px;white-space:nowrap}.undo-history-menu>em{display:block;padding:10px 7px;color:#84909d;font-size:8px;font-style:normal}.toast{display:flex!important;align-items:center;gap:10px}.toast>span{flex:1}.toast>button{border:0;border-left:1px solid rgba(255,255,255,.2);padding:3px 0 3px 10px;background:transparent;color:#b9d8ff;font-weight:800;cursor:pointer}.toast>button:hover{color:#fff}.edit-scope-switch{display:grid;gap:8px;padding:10px 12px;border:1px solid rgba(104,165,255,.18);background:#111c2ab8;border-radius:12px}.edit-scope-switch>span{color:#a9bad0;font-size:12px;font-weight:700}.edit-scope-switch>div{display:flex;flex-wrap:wrap;gap:8px}.edit-scope-switch button{border:1px solid rgba(136,160,190,.22);background:#172130;color:#b9c8da;padding:8px 12px;border-radius:9px;font-weight:700;cursor:pointer}.edit-scope-switch button:hover{border-color:#5da1ff80;color:#e9f2ff}.edit-scope-switch button.active{border-color:#5d9fff;background:#3473d247;color:#f3f8ff;box-shadow:0 0 0 2px #408bff24 inset}.quick-assignment-grid label.full{grid-column:1 / -1}.range-select-toggle{align-self:center;border:1px solid rgba(99,155,226,.28);background:#172130;color:#c6d4e5;border-radius:10px;padding:10px 14px;font-weight:800;cursor:pointer}.range-select-toggle.active{background:#2f77da4d;border-color:#5d9fff;color:#f4f8ff;box-shadow:0 0 0 2px #5d9fff1f inset}.range-select-hint,.schedule-range-bar{display:flex;align-items:center;gap:14px;margin:0 0 12px;padding:10px 14px;border:1px solid rgba(93,159,255,.28);background:#122031f0;border-radius:12px;color:#d7e2ef}.range-select-hint b,.schedule-range-bar b{color:#f3f7fc}.range-select-hint span,.schedule-range-bar span{color:#9eb0c5;font-size:12px}.range-select-hint button,.range-close{margin-left:auto;border:0;background:transparent;color:#aebed0;cursor:pointer}.schedule-range-bar{position:sticky;top:66px;z-index:18;box-shadow:0 12px 30px #0000003d}.schedule-range-bar>div:first-child{min-width:190px;display:grid;gap:3px}.range-actions{display:flex;gap:6px;flex-wrap:wrap}.range-actions button{border:1px solid rgba(129,154,186,.24);background:#202c3b;color:#d7e2ef;padding:7px 9px;border-radius:8px;font-size:12px;font-weight:700;cursor:pointer}.range-actions button:hover{border-color:#5d9fff9e;background:#26384e}.range-actions button.danger-lite{border-color:#eb5b6547;color:#ffb2b8}.range-actions button.primary-lite{border-color:#4992ff80;background:#3070d057;color:#f3f8ff}.day-cell.range-selected{outline:2px solid #69a9ff;outline-offset:-2px;box-shadow:inset 0 0 0 999px #4789e829;z-index:2}.multi-filter-footer>div{display:flex;align-items:center;gap:6px}.multi-filter-footer .apply-filter{min-height:28px;border:1px solid #4f7fbc;border-radius:7px;padding:4px 9px;background:#315f98;color:#fff}.multi-filter-footer .apply-filter:hover{background:#3b70b1;color:#fff}.object-team-v53{margin:0 0 12px;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:6px}.team-person-chip{min-height:42px;border:1px solid #363d45;border-radius:8px;padding:6px 8px;background:#272c31;color:#e9eef4;display:flex;align-items:center;gap:8px;text-align:left;cursor:pointer}.team-person-chip:hover{border-color:#557cad;background:#2c343d}.team-person-chip.contractor{background:#2a3034;border-color:#4a525b;box-shadow:inset 3px 0 #8a98a8}.team-person-chip>span{min-width:0;flex:1}.team-person-chip b,.team-person-chip small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-person-chip b{color:#f0f4f8;font-size:9px}.team-person-chip small{margin-top:2px;color:#93a0ae;font-size:7px}.team-person-chip .icon{color:#71849a}.people-directory{padding:10px}.employment-filter{margin:8px 0 10px;padding:3px;border:1px solid #383f47;border-radius:8px;background:#202429;display:grid;grid-template-columns:repeat(3,1fr);gap:3px}.employment-filter button{min-height:28px;border:0;border-radius:6px;background:transparent;color:#96a2af;font-size:8px;font-weight:800;cursor:pointer}.employment-filter button:hover{color:#fff;background:#2a3036}.employment-filter button.active{background:#345f98;color:#fff;box-shadow:0 2px 8px #2763ae38}.people-specialization-group{margin:0 0 8px}.people-specialization-head{position:sticky;top:-12px;z-index:2;min-height:27px;margin:0 -2px 4px;padding:5px 7px;border-bottom:1px solid #353c44;background:#1f2328f5;color:#9eabb9;display:flex;align-items:center;justify-content:space-between;gap:8px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.people-specialization-head b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:8px;text-transform:uppercase;letter-spacing:.035em}.people-specialization-head span{min-width:20px;border-radius:10px;padding:2px 5px;background:#30363d;color:#aeb9c6;font-size:7px;text-align:center}.person-list-item.contractor{background:#292e33;border-color:#3d454e;box-shadow:inset 3px 0 #7c8998}.person-list-item.contractor:hover{background:#30363d}.person-list-item.contractor.active{border-color:#557eaf;box-shadow:inset 3px 0 #8aa5c7}.person-list-item.staff{background:#23272c}.day-cell.day-absence{box-shadow:inset 0 0 0 1px #ffffff0f}.day-cell.day-absence.vacation_paid{background:#8b6b24!important}.day-cell.day-absence.vacation_unpaid,.day-cell.day-absence.day_off{background:#56616d!important}.day-cell.day-absence.sick{background:#72556f!important}.object-team-v53 .team-person-chip{display:flex;align-items:center;min-width:0;padding:0!important;overflow:hidden}.object-team-v53 .team-person-open{display:flex;align-items:center;gap:9px;flex:1;min-width:0;border:0;background:transparent;color:inherit;text-align:left;padding:7px 9px;cursor:pointer}.object-team-v53 .team-person-open span:not(.avatar){display:flex;flex-direction:column;min-width:0}.object-team-v53 .team-person-open b,.object-team-v53 .team-person-open small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.object-team-v53 .team-person-remove{width:30px;height:30px;margin-right:5px;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--muted);cursor:pointer}.object-team-v53 .team-person-remove:hover{color:#ffb3b8;border-color:#8e4048;background:#ef54621a}.team-member-modal{max-width:660px}.object-team-v53 .team-person-actions{display:flex;align-items:center;gap:4px;padding-right:5px}.object-team-v53 .team-person-edit{width:30px;height:30px;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--muted);cursor:pointer}.object-team-v53 .team-person-edit:hover{color:var(--text);border-color:var(--accent)}.assignment-v53{width:min(1280px,calc(100vw - 24px));max-width:none;height:min(94vh,980px);max-height:94vh;overflow-y:auto;overflow-x:hidden;box-sizing:border-box;scrollbar-gutter:stable}.assignment-v53 .modal-head{position:sticky;top:-22px;z-index:12;margin:-22px -22px 16px;padding:22px 22px 15px;background:#1f2328}.assignment-v53 .v53-actions{position:sticky;bottom:-22px;z-index:12;margin:18px -22px -22px;padding:14px 22px 18px;background:#1f2328;box-shadow:0 -12px 24px #00000038}.assignment-v53 .quick-assignment-grid,.assignment-v53 .advanced-assignment-grid,.assignment-v53 .assignment-calendar,.assignment-v53 label,.assignment-v53 select,.assignment-v53 input,.assignment-v53 textarea{min-width:0;max-width:100%;box-sizing:border-box}.assignment-v53 .quick-assignment-grid input,.assignment-v53 .quick-assignment-grid select,.assignment-v53 .advanced-assignment-grid input,.assignment-v53 .advanced-assignment-grid select,.assignment-v53 .advanced-assignment-grid textarea{width:100%}.day-cell.combined-day{box-shadow:inset 0 0 0 1px #73b8ffb8}.day-cell.combined-day:after{content:"⇄";position:absolute;right:3px;bottom:3px;z-index:3;min-width:15px;height:15px;border-radius:8px;background:#173f66;color:#bfe1ff;font-size:9px;font-weight:800;line-height:15px;text-align:center;box-shadow:0 0 0 1px #7ebeff73}.legend-combined{display:inline-grid;place-items:center;min-width:18px;height:18px;border-radius:9px;background:#173f66;color:#bfe1ff;font-size:10px}@media(max-width:1100px){.assignment-v53{width:calc(100vw - 16px);height:96vh;max-height:96vh}.assignment-v53 .quick-assignment-grid{grid-template-columns:1fr 1fr}.assignment-v53 .quick-assignment-grid label:nth-child(1),.assignment-v53 .quick-assignment-grid label:nth-child(2){grid-column:auto}.assignment-v53 .advanced-assignment-grid{grid-template-columns:1fr}}@media(max-width:720px){.modal-backdrop{padding:4px}.assignment-v53{width:calc(100vw - 8px);height:98vh;max-height:98vh;border-radius:10px;padding:14px}.assignment-v53 .modal-head{top:-14px;margin:-14px -14px 12px;padding:14px}.assignment-v53 .v53-actions{bottom:-14px;margin:14px -14px -14px;padding:12px 14px;flex-wrap:wrap}.assignment-v53 .quick-assignment-grid{grid-template-columns:1fr}}.mobile-logout{display:none}@media(max-width:760px){:root{--schedule-name-width: 164px;--schedule-day-width: 40px;--object-person-width: 154px;--ts-person-width: 142px;--ts-role-width: 126px;--ts-project-width: 150px;--ts-day-width: 42px;--ts-total-width: 58px}html,body,#root,.app-shell{width:100%;max-width:100%;min-height:100%;overflow-x:hidden}body{-webkit-text-size-adjust:100%;overscroll-behavior-x:none}button,summary,select,input[type=checkbox]{touch-action:manipulation;-webkit-tap-highlight-color:transparent}input,select,textarea{font-size:16px}.content{padding:0 10px calc(76px + env(safe-area-inset-bottom));background-size:24px 24px}.sidebar{height:calc(62px + env(safe-area-inset-bottom));padding:6px 6px calc(6px + env(safe-area-inset-bottom));background:#181b1ffa;border-top:1px solid #3a4047;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.sidebar nav{gap:2px;scrollbar-width:none}.sidebar nav::-webkit-scrollbar{display:none}.sidebar nav button{min-width:66px;min-height:50px;padding:5px 4px;border-radius:9px;justify-content:center;line-height:1.05}.sidebar nav button .icon{font-size:20px}.sidebar nav button span{max-width:72px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar nav button.active{background:#30363d;box-shadow:inset 0 2px #5f9df5}.topbar{position:sticky;top:0;z-index:25;min-height:66px;margin:0 -10px 12px;padding:calc(9px + env(safe-area-inset-top)) 10px 9px;flex-wrap:wrap;align-items:center;background:#1f2328f5;border-bottom-color:#3a4047}.topbar>div:first-child{min-width:0;flex:1 1 160px}.topbar h1{max-width:100%;font-size:17px;line-height:1.1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-actions{max-width:100%;margin-left:auto;gap:5px;overflow-x:auto;scrollbar-width:none}.header-actions::-webkit-scrollbar{display:none}.header-actions .icon-btn{display:none}.header-actions .notify,.header-actions .undo-btn{display:inline-flex}.header-actions .notify{width:38px;flex:0 0 38px}.undo-cluster{flex:0 0 auto}.undo-history>summary{height:38px}.undo-history-menu{position:fixed;top:66px;right:8px;width:min(340px,calc(100vw - 16px));max-height:55dvh}.header-actions .primary{min-height:38px;white-space:nowrap}.mobile-logout{display:inline-flex;min-height:38px;padding:8px 10px;flex:0 0 auto}.toolbar{margin-bottom:10px;gap:8px}.month-control{min-width:0;height:44px}.month-control button{width:48px;font-size:24px}.month-control div{min-width:0}.filters{gap:6px}.search,.multi-filter>summary,.filters select{min-height:44px;height:44px}.multi-filter-menu{position:fixed;top:72px;left:8px;right:8px;width:auto;max-height:min(68dvh,520px)}.multi-filter-options{max-height:calc(min(68dvh,520px) - 100px)}.multi-filter-options label{min-height:42px}.range-select-toggle{width:100%;min-height:42px}.metric-row{display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(150px,70vw);gap:8px;margin:0 -10px 12px;padding:0 10px 4px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none}.metric-row::-webkit-scrollbar{display:none}.metric-row>article,.metric-row>button{min-height:88px;scroll-snap-align:start}.metric-row article>b,.metric-row>.metric-action>b{font-size:22px}.active-filter-banner,.range-select-hint,.schedule-range-bar{margin:0 0 10px;padding:9px 10px;align-items:flex-start;flex-direction:column;gap:6px}.active-filter-banner button,.range-select-hint button,.schedule-range-bar .range-close{margin-left:0;align-self:flex-end}.schedule-range-bar{top:68px;max-height:48dvh;overflow:auto}.schedule-range-bar>div:first-child{min-width:0}.range-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.range-actions button{min-height:38px}.schedule-panel{margin:0 -10px;border-left:0;border-right:0;border-radius:0}.schedule-panel .panel-head{padding:10px;gap:8px}.schedule-panel .panel-head p{display:block;font-size:10px;line-height:1.35}.legend{width:100%;display:flex;flex-wrap:nowrap;overflow-x:auto;gap:10px;padding-bottom:3px;scrollbar-width:none}.legend::-webkit-scrollbar{display:none}.legend span{flex:0 0 auto}.schedule-scroll{max-height:calc(100dvh - 245px);min-height:350px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.name-head{padding:0 8px;font-size:8px}.person-cell{padding:4px 6px;gap:5px}.person-cell .avatar{width:28px;height:28px;font-size:8px}.person-cell b{font-size:8px}.person-cell small{max-width:84px;font-size:6px}.person-cell em{min-width:34px;padding:3px 4px;font-size:7px}.project-group-head{min-height:38px;padding:5px 8px}.project-group-head b{max-width:160px;font-size:9px}.project-group-head>span:nth-of-type(2){display:none}.day-head,.day-cell{min-width:var(--schedule-day-width)}.day-cell{min-height:40px}.split-layout,.object-layout-v524,.people-layout{min-width:0}.list-panel{max-height:none}.object-list-panel{display:flex;flex-wrap:wrap;gap:7px;margin:0 -10px 10px;padding:8px 10px;border-left:0;border-right:0;border-radius:0;overflow-x:auto}.object-list-panel .search{flex:0 0 100%;margin:0}.object-list-panel .project-list-item{flex:0 0 min(82vw,310px);min-height:64px}.object-detail-v524{margin:0 -10px;padding:12px 10px;border-left:0;border-right:0;border-radius:0}.object-title{gap:8px}.object-title .project-icon.large{width:42px;height:42px}.object-title h2{font-size:18px}.object-title .badge{margin-left:0}.passport-grid{gap:7px}.passport-grid article{min-height:76px;padding:10px}.section-title{gap:8px}.section-title>button{width:100%}.object-team-v53{grid-template-columns:1fr}.team-person-chip{min-height:52px}.object-schedule-head{padding:10px}.object-schedule-actions{display:grid;grid-template-columns:1fr 1fr}.object-schedule-actions>*{min-width:0;width:100%}.range-tabs{grid-column:1 / -1}.object-timeline-scroll{max-height:58dvh;-webkit-overflow-scrolling:touch}.object-timeline-person{padding:5px 6px}.object-timeline-person b{font-size:8px}.people-directory{max-height:38dvh;overflow:auto}.employment-filter button{min-height:38px;font-size:9px}.person-list-item{min-height:52px}.detail-panel{margin:0 -10px;padding:12px 10px;border-left:0;border-right:0;border-radius:0}.person-hero{gap:8px}.person-hero h2{font-size:18px}.person-metrics{display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(135px,62vw);overflow-x:auto;gap:7px;padding-bottom:3px;scrollbar-width:none}.person-metrics::-webkit-scrollbar{display:none}.personal-timeline{overflow-x:auto;-webkit-overflow-scrolling:touch}.timesheet-toolbar{gap:8px}.coefficient-controls{width:100%;display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px}.coefficient-controls label{min-width:0}.coefficient-controls input{width:100%;min-height:42px}.coefficient-controls .secondary{grid-column:1 / -1}.timesheet-panel{margin:0 -10px;border-left:0;border-right:0;border-radius:0}.timesheet-scroll{max-height:64dvh;-webkit-overflow-scrolling:touch}.ts-cell,.ts-head{min-height:38px;font-size:8px}.ts-cell.person-name{padding-inline:6px}.approval-list>article{padding:10px;gap:8px}.approval-actions{display:grid;grid-template-columns:1fr 1fr}.approval-actions button{width:100%;min-height:42px}.role-matrix{gap:7px}.account-list>article{padding:10px}.modal-backdrop{padding:0;align-items:stretch;background:#05070adb}.modal,.compact-modal,.team-member-modal{width:100%;max-width:none;height:100dvh;max-height:100dvh;margin:0;border:0;border-radius:0;padding:calc(12px + env(safe-area-inset-top)) 12px calc(12px + env(safe-area-inset-bottom));overflow-y:auto;overflow-x:hidden}.modal:not(.assignment-v53) .modal-head{position:sticky;top:calc(-12px - env(safe-area-inset-top));z-index:10;margin:calc(-12px - env(safe-area-inset-top)) -12px 12px;padding:calc(12px + env(safe-area-inset-top)) 12px 10px;background:#24272a}.modal-head>button{width:42px;height:42px;font-size:24px}.modal-actions{position:sticky;bottom:calc(-12px - env(safe-area-inset-bottom));z-index:10;margin:14px -12px calc(-12px - env(safe-area-inset-bottom));padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:#24272af7;flex-wrap:wrap}.modal-actions>button{min-height:44px}.assignment-v53{width:100%;height:100dvh;max-height:100dvh;border-radius:0;padding:calc(12px + env(safe-area-inset-top)) 10px calc(12px + env(safe-area-inset-bottom))}.assignment-v53 .modal-head{top:calc(-12px - env(safe-area-inset-top));margin:calc(-12px - env(safe-area-inset-top)) -10px 10px;padding:calc(12px + env(safe-area-inset-top)) 10px 10px}.assignment-v53 .v53-actions{bottom:calc(-12px - env(safe-area-inset-bottom));margin:12px -10px calc(-12px - env(safe-area-inset-bottom));padding:10px 10px calc(10px + env(safe-area-inset-bottom));display:grid;grid-template-columns:1fr 1fr;gap:7px}.assignment-v53 .v53-actions .reset-form-btn{grid-column:1 / -1}.assignment-v53 .remove-menu{grid-column:1 / -1;display:grid;grid-template-columns:1fr 1fr;gap:6px}.assignment-v53 .remove-menu .danger-btn{grid-column:1 / -1;margin:0}.assignment-principle{padding:8px 9px}.assignment-principle span{line-height:1.35}.edit-scope-switch>div{display:grid;grid-template-columns:1fr}.edit-scope-switch button{min-height:42px;text-align:left}.quick-assignment-grid{gap:8px}.quick-assignment-grid input,.quick-assignment-grid select,.advanced-assignment-grid input,.advanced-assignment-grid select,.advanced-assignment-grid textarea{min-height:44px}.template-bar{display:grid;grid-template-columns:1fr 1fr}.template-bar>span{grid-column:1 / -1}.template-bar button{min-height:40px}.calendar-head{gap:8px}.calendar-nav{width:100%;display:grid;grid-template-columns:44px 1fr 44px}.calendar-nav button{min-height:42px}.calendar-days{grid-template-columns:repeat(7,minmax(38px,1fr));gap:3px}.calendar-day{min-height:48px;padding:3px}.calendar-day small{width:17px;height:17px}.calendar-mode-picker{display:grid;grid-template-columns:1fr 1fr;gap:5px}.calendar-mode-picker button{min-height:38px}.toast{right:8px;left:8px;bottom:calc(70px + env(safe-area-inset-bottom));max-width:none;padding:10px 12px}.login-page{min-height:100dvh;padding:calc(16px + env(safe-area-inset-top)) 12px calc(16px + env(safe-area-inset-bottom))}.login-card{padding:22px 16px;border-radius:14px}.login-card h1{font-size:24px}.login-card input,.login-card .primary{min-height:48px;font-size:16px}}@media(max-width:430px){:root{--schedule-name-width: 150px;--object-person-width: 145px;--ts-person-width: 132px;--ts-role-width: 116px;--ts-project-width: 138px}.topbar h1{font-size:16px}.header-actions .primary{width:40px;min-width:40px;padding:0;font-size:0}.header-actions .primary .icon{font-size:18px}.mobile-logout{padding-inline:8px;font-size:10px}.metric-row{grid-auto-columns:78vw}.passport-grid{grid-template-columns:1fr 1fr}.object-schedule-actions{grid-template-columns:1fr}.range-tabs{grid-column:auto}.coefficient-controls{grid-template-columns:1fr}.calendar-days{grid-template-columns:repeat(7,minmax(34px,1fr))}.calendar-day{min-height:45px}}.audit-toolbar{align-items:center;flex-wrap:wrap}.audit-toolbar .search{flex:1 1 320px;min-width:220px}.audit-panel{overflow:hidden}.audit-head,.audit-list>article{display:grid;grid-template-columns:170px minmax(190px,1fr) 150px minmax(260px,1.4fr) 130px;gap:12px;align-items:center}.audit-head{min-height:38px;padding:0 14px;border-bottom:1px solid #3a4047;background:#25292e;color:#8f9aa7;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.audit-list{max-height:calc(100dvh - 280px);overflow:auto}.audit-list>article{min-height:58px;padding:9px 14px;border-bottom:1px solid #343a41;background:#202428}.audit-list>article:hover{background:#252a30}.audit-list time,.audit-list code{color:#9ba6b3;font-size:10px}.audit-list b{color:#f2f5f8;font-size:11px}.audit-list article>div{min-width:0;display:grid;gap:2px}.audit-list article>div strong{color:#dce4ed;font-size:10px}.audit-list article>div small{overflow:hidden;color:#95a1ae;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.audit-action{width:max-content;max-width:100%;border-radius:999px;padding:4px 8px;background:#303841;color:#ced7e0;font-size:9px;font-weight:800}.audit-action.action-login{background:#173d30;color:#a9e6c8}.audit-action.action-logout{background:#38333a;color:#d4c5d9}.audit-action.action-deleted,.audit-action.action-removed,.audit-action.action-deactivated,.audit-action.action-rejected{background:#472c30;color:#ffc2c8}.audit-action.action-created,.audit-action.action-approved{background:#183b31;color:#a8e7cb}.audit-action.action-updated,.audit-action.action-range_updated{background:#213d5a;color:#b8d8ff}@media(max-width:760px){.audit-toolbar{display:grid;grid-template-columns:1fr auto;gap:7px}.audit-toolbar .range-tabs{grid-column:1 / -1;width:100%}.audit-toolbar .range-tabs button{flex:1;min-height:40px}.audit-toolbar .search{min-width:0;width:100%}.audit-panel{margin:0 -10px;border-left:0;border-right:0;border-radius:0}.audit-head{display:none}.audit-list{max-height:none;overflow:visible}.audit-list>article{grid-template-columns:1fr auto;gap:5px 10px;padding:10px}.audit-list>article time{grid-column:1;grid-row:1}.audit-list>article .audit-action{grid-column:2;grid-row:1 / span 2;justify-self:end}.audit-list>article b{grid-column:1;grid-row:2}.audit-list>article>div{grid-column:1 / -1;grid-row:3}.audit-list>article code{grid-column:1 / -1;grid-row:4;font-size:9px}}.employment-filter button{display:flex;align-items:center;justify-content:center;gap:6px}.employment-filter button small{min-width:32px;border-radius:10px;padding:2px 5px;background:#ffffff12;color:inherit;font-size:7px;font-weight:800}.employment-filter button.active small{background:#ffffff24}.person-list-item{position:relative;padding:0;overflow:hidden}.person-list-main{min-width:0;min-height:62px;flex:1;border:0;padding:9px 58px 9px 9px;background:transparent;color:inherit;display:flex;align-items:center;gap:10px;text-align:left;cursor:pointer}.person-list-main>span:nth-child(2){min-width:0;flex:1}.person-list-main b,.person-list-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.person-list-main b{font-size:11px}.person-list-main small{margin-top:3px;color:var(--muted);font-size:9px}.person-list-main>em{min-width:38px;border-radius:10px;padding:3px 6px;font-size:9px;font-style:normal;font-weight:700;text-align:center}.person-list-main>em.load-blue{background:#dcecff;color:#1d64aa}.person-list-main>em.load-green{background:#e5f5ed;color:#247d5d}.person-list-main>em.load-yellow{background:#fff5b8;color:#775c00}.person-list-main>em.load-orange{background:#ffe2bd;color:#a95500}.person-list-main>em.load-red{background:#ffe0e0;color:#bd3030}.person-list-main>em.load-black{background:#20242b;color:#fff}.person-list-item.disabled-person{opacity:.58;filter:saturate(.55);border-style:dashed;background:#202328}.person-list-item.disabled-person:hover{opacity:.78}.person-disabled-label{background:#31363d;color:#aab3bd}.person-enabled-switch{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:38px;height:22px;cursor:pointer}.person-enabled-switch input,.hero-enabled-switch input{position:absolute;opacity:0;pointer-events:none}.person-enabled-switch span,.hero-enabled-switch i{position:absolute;inset:0;border:1px solid #4b535c;border-radius:999px;background:#353b42;transition:.16s ease}.person-enabled-switch span:after,.hero-enabled-switch i:after{content:"";position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:#929eaa;transition:.16s ease}.person-enabled-switch input:checked+span,.hero-enabled-switch input:checked+i{border-color:#4d8ad7;background:#285f9e}.person-enabled-switch input:checked+span:after,.hero-enabled-switch input:checked+i:after{transform:translate(16px);background:#fff}.hero-enabled-switch{position:relative;min-width:112px;min-height:34px;padding:0 48px 0 10px;border:1px solid #3b434c;border-radius:8px;display:flex;align-items:center;color:#aeb9c6;font-size:8px;font-weight:800}.hero-enabled-switch i{inset:6px 8px auto auto;width:38px;height:20px}.disabled-person-hero{opacity:.72}.person-enabled-field-control{min-height:40px;border:1px solid #414850;border-radius:8px;padding:0 12px;display:flex;align-items:center;gap:9px}.person-enabled-field-control input{width:18px;height:18px}.person-enabled-field-control b{font-size:10px}.person-modal-actions .delete-person-btn{margin-right:auto}.object-status-group{width:100%}.object-status-head{width:100%;min-height:32px;margin:7px 0 5px;border:1px solid #343b43;border-radius:7px;padding:6px 8px;background:#1d2125;color:#aeb8c3;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:8px;text-align:left;cursor:pointer}.object-status-head:hover{background:#272c31;color:#fff}.object-status-head span{font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.object-status-head b{min-width:24px;border-radius:10px;padding:2px 6px;background:#30363d;color:#c2ccd7;font-size:7px;text-align:center}.object-status-head em{font-style:normal;transition:transform .16s ease}.object-status-head em.collapsed{transform:rotate(-90deg)}.object-status-items{display:block}.object-status-group.status-Активный .object-status-head{border-color:#365e4f}.object-status-group.status-Завершён .object-status-head,.object-status-group.status-Архив .object-status-head{opacity:.82}.object-passport-v524{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:760px){.employment-filter button{flex-direction:column;gap:2px;min-height:44px}.employment-filter button small{font-size:7px}.person-list-main{min-height:58px;padding-right:54px}.person-enabled-switch{right:8px}.hero-enabled-switch{width:100%}.object-list-panel{display:block;overflow-x:visible}.object-list-panel .search{width:100%}.object-status-group{margin-bottom:6px}.object-status-items{display:flex;gap:7px;overflow-x:auto;padding-bottom:3px;-webkit-overflow-scrolling:touch}.object-list-panel .project-list-item{flex:0 0 min(82vw,310px);margin:0}.object-passport-v524{grid-template-columns:1fr}.person-modal-actions{flex-wrap:wrap}.person-modal-actions .delete-person-btn{width:100%;margin-right:0;order:3}}.conflict-detail-alert{gap:8px}.conflict-detail-list{display:grid;gap:6px;margin:2px 0 3px}.conflict-detail-row{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(220px,1.4fr);gap:10px;align-items:center;padding:8px 10px;border:1px solid rgba(227,199,116,.25);border-radius:8px;background:#0000001f}.conflict-detail-row strong{font-size:11px;color:#f4e2a7;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conflict-detail-row span{font-size:10px;color:#d6c997}.conflict-detail-alert>small{color:#aa9d76;font-size:9px;line-height:1.4}@media(max-width:760px){.conflict-detail-row{grid-template-columns:1fr;gap:2px}.conflict-detail-row strong{white-space:normal}}.monthly-backdrop{z-index:60;align-items:center;justify-content:center;padding:18px}.monthly-schedule-modal{width:min(1480px,96vw);height:min(92vh,980px);max-width:none;display:flex;flex-direction:column;overflow:hidden;padding:0}.monthly-head{padding:22px 24px 16px;border-bottom:1px solid var(--line,#36404b);flex:0 0 auto}.monthly-head p{margin:6px 0 0;color:var(--muted,#96a3b3);font-size:13px}.monthly-toolbar{display:grid;grid-template-columns:minmax(280px,1.3fr) 220px minmax(220px,.8fr);gap:12px;padding:14px 20px;border-bottom:1px solid var(--line,#36404b);align-items:end}.monthly-toolbar label,.monthly-bulk label{display:grid;gap:6px}.monthly-toolbar label>span,.monthly-bulk label>span{font-size:11px;text-transform:uppercase;color:var(--muted,#96a3b3);font-weight:700;letter-spacing:.04em}.monthly-toolbar select,.monthly-toolbar input,.monthly-bulk select{min-height:42px}.monthly-summary{display:grid;grid-template-columns:1fr auto;gap:2px 12px;align-items:center;background:#4682dc14;border:1px solid rgba(90,145,230,.24);border-radius:12px;padding:10px 14px}.monthly-summary span{font-size:12px;color:var(--muted,#96a3b3);text-transform:capitalize}.monthly-summary b{font-size:22px}.monthly-summary small{grid-column:1/-1;color:var(--muted,#96a3b3)}.monthly-bulk{display:flex;align-items:end;gap:10px;padding:12px 20px;background:#ffffff04;border-bottom:1px solid var(--line,#36404b);flex-wrap:wrap}.monthly-bulk label{min-width:260px}.monthly-bulk button{min-height:42px}.monthly-days-scroll{flex:1 1 auto;overflow:auto;padding:14px 18px 90px;display:grid;gap:10px;scroll-behavior:smooth}.monthly-loading{padding:40px;text-align:center;color:var(--muted,#96a3b3)}.monthly-day{border:1px solid var(--line,#36404b);border-radius:14px;background:#ffffff05;display:grid;grid-template-columns:92px 1fr;min-height:78px;overflow:hidden}.monthly-day.weekend{background:#ffffff03}.monthly-day.focused{border-color:#4e95eb;box-shadow:0 0 0 1px #4e95eb59}.monthly-day>header{padding:12px;border-right:1px solid var(--line,#36404b);display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start}.monthly-day>header div{display:flex;align-items:baseline;gap:8px}.monthly-day>header b{font-size:24px}.monthly-day>header span{font-size:11px;text-transform:uppercase;color:var(--muted,#96a3b3)}.monthly-day>header small{font-size:10px;color:var(--muted,#96a3b3)}.monthly-day-entries{padding:8px;display:grid;gap:7px;min-width:0}.monthly-entry{display:grid;grid-template-columns:minmax(150px,1.35fr) 115px 100px 18px 100px 88px 88px 142px minmax(150px,1.2fr) 32px;gap:7px;align-items:center;padding:7px;border:1px solid rgba(125,145,165,.2);border-radius:10px;background:#20262d;min-width:0}.monthly-entry.locked{opacity:.58;background:#1b2026}.monthly-entry select,.monthly-entry input{min-width:0;height:36px;padding:7px 9px;font-size:12px}.monthly-time-dash{text-align:center;color:var(--muted,#96a3b3)}.monthly-break,.monthly-hours{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:5px}.monthly-break span,.monthly-hours span{font-size:9px;text-transform:uppercase;color:var(--muted,#96a3b3)}.monthly-break input,.monthly-hours input{width:100%}.monthly-remove{width:32px;height:32px;border-radius:9px;border:1px solid rgba(240,90,100,.35);color:#ff8790;background:#f05a6414;font-size:18px}.monthly-absence-label{grid-column:1/7;display:flex;gap:10px;align-items:center;padding:0 8px}.monthly-absence-label b{font-size:13px}.monthly-absence-label small{color:var(--muted,#96a3b3)}.monthly-entry:has(.monthly-absence-label)>input{grid-column:7/10}.monthly-day-actions{display:flex;gap:7px;flex-wrap:wrap;padding:2px}.monthly-day-actions button,.monthly-day-actions select{height:32px;padding:4px 10px;border-radius:8px;font-size:11px;background:#252d36;border:1px solid #3c4855;color:inherit}.monthly-actions{position:absolute;left:0;right:0;bottom:0;background:#1b2026f7;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--line,#36404b);padding:12px 20px;display:flex;align-items:center;gap:10px}.monthly-note{margin-right:auto;max-width:720px;color:var(--muted,#96a3b3);font-size:11px}@media(max-width:1100px){.monthly-entry{grid-template-columns:minmax(150px,1fr) 110px 92px 18px 92px 82px 82px 130px 1fr 32px}.monthly-toolbar{grid-template-columns:1fr 180px}.monthly-summary{grid-column:1/-1}}@media(max-width:760px){.monthly-backdrop{padding:0}.monthly-schedule-modal{width:100vw;height:100dvh;max-height:none;border-radius:0}.monthly-head{padding:14px 16px 10px}.monthly-head h2{font-size:22px}.monthly-head p{font-size:11px}.monthly-toolbar{grid-template-columns:1fr;padding:10px 12px}.monthly-summary{grid-column:auto}.monthly-bulk{padding:9px 12px;display:grid;grid-template-columns:1fr 1fr}.monthly-bulk label{grid-column:1/-1;min-width:0}.monthly-bulk button{min-width:0}.monthly-days-scroll{padding:8px 8px 92px}.monthly-day{grid-template-columns:58px 1fr}.monthly-day>header{padding:8px 6px}.monthly-day>header b{font-size:19px}.monthly-day>header div{display:grid;gap:0}.monthly-entry{grid-template-columns:1fr 1fr;gap:6px;padding:8px}.monthly-entry select,.monthly-entry input{height:40px;font-size:16px}.monthly-time-dash{display:none}.monthly-break,.monthly-hours{grid-template-columns:44px 1fr}.monthly-remove{grid-column:2;justify-self:end}.monthly-entry>input[placeholder=Комментарий]{grid-column:1/-1}.monthly-absence-label{grid-column:1/-1}.monthly-entry:has(.monthly-absence-label)>input{grid-column:1/-1}.monthly-day-actions{grid-column:1/-1}.monthly-day-actions>*{flex:1 1 110px}.monthly-actions{padding:10px 12px calc(10px + env(safe-area-inset-bottom))}.monthly-note{display:none}.monthly-actions button{min-height:44px}}
