:root{--ink:#222b27;--muted:#748078;--green:#406b55;--gold:#d8bd78;--line:#e4e7e0;--surface:#f5f6f1;--dark:#171d19}*{box-sizing:border-box}body{margin:0;background:var(--surface);font:14px/1.5 'Segoe UI',Arial,sans-serif;color:var(--ink)}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:1px solid var(--line);background:#fff;border-radius:8px;padding:9px 15px;color:var(--ink);font-weight:600}button:hover{background:#f1f3ed}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible{outline:3px solid #a08440;outline-offset:3px}input,select,textarea{width:100%;border:1px solid #d9dfd5;background:#fff;border-radius:7px;color:var(--ink);padding:10px 12px;min-width:0;outline:none}input:focus,select:focus,textarea:focus{border-color:#7a997f;box-shadow:0 0 0 3px #406b5510}textarea{min-height:90px;resize:vertical}label{display:block;font-size:12px;color:#5b675f;font-weight:600}label input,label select,label textarea{margin-top:6px}strong{font-weight:650}h1,h2,h3,p{margin:0}h1{font-size:32px;letter-spacing:-1.1px;font-weight:650;line-height:1.25}h2{font-size:24px;font-weight:650;letter-spacing:-.6px}h3{font-size:16px}p{color:var(--muted)}small{font-size:11px}.primary{background:var(--green);border-color:var(--green);color:#fff;box-shadow:0 3px 8px #406b5516}.primary:hover{background:#31543f}.quiet{border-color:transparent;background:transparent}.danger{color:#a04639;background:#fff6f3;border-color:#f0ded8;margin-top:15px}.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:700;color:#7e897f}.shell{display:flex;min-height:100vh}aside{width:240px;background:var(--dark);color:#fff;position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;padding:24px 16px;z-index:10}.brand{display:block;text-decoration:none;color:#b7baa9;text-align:center;padding:7px 5px 27px}.brand img{width:100%;display:block;border-radius:4px}.brand span{display:block;font-size:9px;letter-spacing:2.5px;margin-top:17px}nav{display:grid;gap:6px;margin-top:15px}nav button{text-align:left;display:flex;align-items:center;gap:13px;padding:13px 15px;background:transparent;border-color:transparent;color:#a5b0a6;font-size:13px;font-weight:500}nav button:hover{background:#252d27;color:white}nav button.active{background:#d6bb7816;border-color:#d6bb7820;color:#e3cc94}.navicon{font-size:20px;width:23px;text-align:center;font-weight:400}.sidebottom{margin-top:auto;display:flex;align-items:center;gap:10px;padding:22px 0 0;border-top:1px solid #ffffff12;font-size:11px}.sidebottom strong{display:block;max-width:125px;overflow-wrap:anywhere}.sidebottom small{display:block;color:#88968b;font-size:10px}.avatar{width:32px;height:32px;border-radius:50%;background:#d6bb7828;color:var(--gold);display:grid;place-items:center;font-size:15px;flex-shrink:0}.logout{margin-left:auto;padding:5px;color:#afb9af;background:transparent;border:0;font-size:20px}.workspace{margin-left:240px;flex:1;min-width:0}.topbar{height:72px;display:flex;justify-content:space-between;align-items:center;padding:0 38px;border-bottom:1px solid var(--line);background:#fff}.topbar>div{display:flex;gap:25px;align-items:center}.online{font-size:11px;color:#708475}.online:first-letter{color:#629266}.page{padding:34px 38px;max-width:1800px;margin:auto;min-height:calc(100vh - 125px)}.pagehead{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:27px}.pagehead .eyebrow{display:block;margin-bottom:8px}.pagehead p{margin-top:10px;font-size:12px}.pagehead>button{white-space:nowrap;padding:12px 20px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:17px;margin:25px 0}.stats article{background:white;border:1px solid var(--line);border-radius:11px;padding:19px 22px;box-shadow:0 2px 4px #00000002}.stats article>span{color:#657268;font-size:12px;display:block}.stats article>strong{display:block;font-size:31px;letter-spacing:-.7px;font-weight:600;margin:6px 0}.stats strong small{font-size:15px;font-weight:400;color:#8f988d}.stats article>small{color:#8c958b;font-size:10px}.panel{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 3px 10px #10251603}.toolbar{padding:20px 23px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.period{display:flex;align-items:center;gap:14px}.period>strong{font-size:16px;min-width:160px;text-transform:capitalize}.arrows{display:flex;gap:4px}.arrows button{padding:3px 12px;font-size:23px;font-weight:400}.period input{width:130px;font-size:11px;padding:7px}.segments{display:flex;border:1px solid var(--line);border-radius:8px;padding:3px;background:#f5f6f2}.segments button{border:0;border-radius:5px;background:transparent;padding:6px 15px;font-size:12px;color:#7e887e}.segments button.selected{background:#fff;color:#315940;box-shadow:0 1px 4px #00000014}.filterbar{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:12px 23px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fcfdf9}.inline{display:flex;align-items:center;gap:12px;font-size:11px}.inline select{width:230px;margin:0;padding:7px 10px;font-size:12px}.legend{display:flex;align-items:center;gap:7px;font-size:10px;color:#879086}.dot{width:7px;height:7px;border-radius:50%;display:inline-block;margin-left:8px}.dot.planned{background:#bfa47e}.dot.done{background:#6c9473}.dot.free{background:#fff;border:1px solid #8dba92}.weekscroll{overflow-x:auto}.weekgrid{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr));min-width:1080px;min-height:430px}.day{border-right:1px solid #e9ece6}.day:last-child{border-right:0}.day header{display:flex;align-items:center;gap:9px;padding:17px 14px;border-bottom:1px solid var(--line)}.day header>span{color:#879081;font-size:11px;text-transform:capitalize}.day header>strong{font-size:18px}.day header>small{margin-left:auto;color:#899384;font-size:10px}.day.istoday header{background:#edf2e9}.day.istoday header>strong{background:var(--green);color:white;width:29px;height:29px;border-radius:50%;display:grid;place-items:center;font-size:15px}.daytasks{padding:12px 8px;display:grid;gap:9px;align-content:start}.task{display:block;width:100%;text-align:left;padding:10px;border:1px solid #e5e9e1;border-left:3px solid var(--accent);border-radius:7px;background:#f5f7f1;font-weight:400;overflow:hidden}.task:hover{filter:brightness(.97)}.tasktime{font-size:11px;color:#516c53;display:flex;justify-content:space-between;font-weight:700;margin-bottom:5px}.task strong{font-size:12px;display:block;line-height:1.4}.task>small{display:block;font-size:10px;color:#6e7c6b;margin-top:5px}.taskaddress{display:block;color:#8a9385;font-size:9px;margin-top:7px}.taskmeta{font-size:9px;color:#73826c;margin-top:8px;padding-top:7px;border-top:1px solid #7a917a18}.task.done{background:#ecf5ee;border-color:#d1e3d4}.task.cancelled{opacity:.5;text-decoration:line-through}.gap{border:1px dashed #b8d2b6;background:#f8fcf7;text-align:left;font-weight:400;padding:11px 10px}.gap:hover{background:#ecf6e9}.gap span{font-size:10px;color:#689065}.gap strong{font-size:12px;display:block;margin:3px 0;color:#51784c}.gap small{font-size:9px;color:#8a9e82}.daynew{border-style:dashed;font-size:18px;color:#a5afa1;background:transparent;padding:5px}.emptyday{font-size:10px;text-align:center;color:#b1b8ab;padding:45px 0}.emptytip{padding:16px 23px;font-size:11px;color:#7a8878;border-top:1px solid var(--line);background:#fbfcf8}.hint{display:flex;gap:18px;background:#edf1e7;border:1px solid #e0e6d6;border-radius:9px;padding:16px 20px;margin-top:18px;font-size:11px;color:#819073}.hint strong{color:#52724b;white-space:nowrap}.pagefooter{padding:16px 38px;font-size:10px;color:#9aa293;display:flex;justify-content:space-between;border-top:1px solid var(--line)}.monthgrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.weekday{padding:12px;text-align:center;font-size:11px;color:#7c8978;border-bottom:1px solid var(--line)}.monthday{min-height:140px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:7px}.monthday:nth-child(7n){border-right:0}.daynumber{padding:3px 6px;border:0;background:transparent;font-size:11px;color:#7c8877}.outside{background:#f7f8f4;color:#bbc1b6}.outside .daynumber{color:#b5bdaf}.monthday.istoday .daynumber{background:var(--green);color:white;border-radius:50%}.compact{padding:5px 7px;margin-top:4px}.compact .tasktime{font-size:9px;margin:0}.compact strong{font-size:10px}.yeargrid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;padding:24px}.yeargrid h3{text-transform:capitalize;margin-bottom:8px;font-size:14px}.mini .weekday{padding:4px;font-size:8px;border:0}.mini .monthday{min-height:36px;padding:0;text-align:center;border:0;position:relative}.mini .daynumber{font-size:10px;padding:2px 5px}.mini .count{display:block;width:13px;border-radius:3px;background:#e0eadb;color:#557449;font-size:8px;margin:auto}.tablewrap{overflow:auto}table{border-collapse:collapse;width:100%;white-space:normal}th{padding:14px 20px;font-size:10px;letter-spacing:.3px;color:#83917e;text-align:left;background:#f9fbf6;font-weight:600;white-space:nowrap}td{padding:15px 20px;border-bottom:1px solid #edf0e8;font-size:12px;min-width:100px}td small{display:block;color:#8a9583;margin-top:4px;font-size:10px}.clickrow{cursor:pointer}.clickrow:hover{background:#fafcf7}.badge{display:inline-block;border-radius:5px;padding:4px 8px;background:#eef2e9;color:#6b805d;font-size:10px;white-space:nowrap}.badge.pending,.badge.planned{background:#f6eedf;color:#a38b51}.badge.done{background:#e7f3e9;color:#4a7b55}.badge.cancelled{background:#f4e7e5;color:#a6675c}.reportnote{padding:20px;color:#8b9581;font-size:11px}.sectiontitle{padding:12px 20px}.directorybar{display:flex;justify-content:space-between;align-items:center;padding:20px 23px;gap:20px;border-bottom:1px solid var(--line);color:#85917e;font-size:11px}.directorybar label{width:420px}.helpgrid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.helpgrid .panel{padding:25px}.helpgrid h2{font-size:20px;margin-bottom:15px}.helpgrid h3{margin:20px 0 7px}.helpgrid p{font-size:13px;margin:12px 0;line-height:1.7}.helpgrid ol{padding-left:20px;color:#7e8b74}.helpgrid li{padding:6px 0}.helpgrid b{color:#4c6642}.helpgrid .panel:last-child{grid-column:1/-1}.login{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.loginbrand{background:#151a17;display:flex;flex-direction:column;justify-content:space-between;padding:65px 70px;color:#fff}.loginbrand img{width:100%;max-width:500px}.loginbrand>div{margin:60px 0}.loginbrand h1{font-size:42px;line-height:1.25;font-weight:400;letter-spacing:-1px;margin:20px 0}.loginbrand .eyebrow{color:#ceb57d}.loginbrand p{color:#9aa797;font-size:16px;line-height:1.8}.loginform{align-self:center;max-width:460px;padding:40px;margin:auto;width:100%}.loginform h2{font-size:30px;margin:15px 0 8px}.loginform p{margin-bottom:30px}.loginform label{margin:18px 0}.loginform .primary{width:100%;padding:13px;margin:12px 0 28px;display:flex;justify-content:space-between}.loginform>small{color:#a2a99b}dialog{border:1px solid var(--line);border-radius:15px;padding:26px;width:min(660px,95vw);max-height:92vh;box-shadow:0 25px 100px #0003;color:var(--ink)}dialog::backdrop{background:#10221788;backdrop-filter:blur(3px)}.dialoghead{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.dialoghead h2{font-size:23px}.close{border:0;font-size:24px;font-weight:400;padding:0 8px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:15px}dialog h3{margin-top:23px;margin-bottom:8px}dialog label{margin-bottom:10px}dialog .subtle{font-size:11px;margin-bottom:14px}dialog footer{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line);padding-top:18px;margin-top:17px}.formerror{color:#b15346;font-size:12px;margin:12px 0}.loading{padding:100px;text-align:center;color:#819075}#toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,15px);opacity:0;pointer-events:none;background:#233c2b;color:white;border-radius:9px;padding:14px 22px;z-index:1000;transition:.2s;max-width:90vw}#toast.show{opacity:1;transform:translate(-50%,0)}
@media(min-width:1550px){.weekgrid{min-width:0;grid-template-columns:repeat(7,minmax(0,1fr))}}
@media(max-width:1150px){aside{width:195px;padding:20px 12px}.workspace{margin-left:195px}.page{padding:28px 23px}.topbar{padding:0 23px}.stats{gap:10px}.stats article{padding:15px}.period input{display:none}.yeargrid{grid-template-columns:repeat(2,1fr)}.pagehead p{max-width:450px}}
@media(max-width:760px){aside{position:static;width:100%;padding:12px 16px}.shell{display:block}.brand{padding:0;text-align:left;display:flex;align-items:center;gap:20px}.brand img{width:200px}.brand span{display:none}nav{display:flex;overflow:auto;margin-top:12px;gap:5px}nav button{padding:9px 12px;font-size:11px;white-space:nowrap}.navicon{font-size:15px;width:auto}.sidebottom{display:none}.workspace{margin:0}.topbar{height:51px;padding:0 17px}.online{display:none}.page{padding:23px 16px}.pagehead{align-items:flex-start;gap:10px}.pagehead h1{font-size:26px}.pagehead p{font-size:11px}.pagehead>button{padding:10px 12px;font-size:11px}.stats{grid-template-columns:repeat(2,1fr);gap:9px;margin:18px 0}.stats article{padding:13px 15px}.stats article>strong{font-size:26px}.toolbar{padding:14px;gap:15px}.period{gap:8px;width:100%}.period>strong{font-size:13px;min-width:0;flex:1}.segments{margin-left:auto}.filterbar{padding:12px;flex-wrap:wrap;gap:10px}.inline{width:100%}.inline select{flex:1;width:180px}.legend{font-size:9px}.weekgrid{min-width:1060px}.hint{display:block;padding:14px}.hint strong{display:block;margin-bottom:6px}.pagefooter{padding:14px 16px}.pagefooter span{font-size:8px}.monthday{min-height:100px;padding:3px}.compact strong{font-size:8px;word-break:break-word}.compact{padding:3px}.compact .tasktime{font-size:7px}.yeargrid{padding:15px;gap:13px}.mini .monthday{min-height:29px}.mini .daynumber{font-size:9px}.helpgrid{grid-template-columns:1fr}.helpgrid .panel:last-child{grid-column:auto}.login{display:block}.loginbrand{padding:25px}.loginbrand img{max-width:350px;margin:auto}.loginbrand>div{display:none}.loginform{padding:30px}.loginform h2{font-size:27px}.formgrid{gap:10px}dialog{padding:20px}dialog label{font-size:11px}.directorybar{padding:16px}.directorybar label{width:100%}th,td{padding:12px;font-size:11px}.tablewrap td{min-width:110px}}
@media print{aside,.topbar,.pagehead>button,.filterbar button,.arrows,.segments,.hint,.pagefooter{display:none}.workspace{margin:0}.page{padding:0}.weekgrid{min-width:0;grid-template-columns:repeat(7,1fr)}.weekscroll{overflow:visible}.stats article{box-shadow:none}.task{break-inside:avoid}}
@media(min-width:761px){.weekgrid{min-width:840px;grid-template-columns:repeat(7,minmax(120px,1fr))}}

.reportactions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:18px 23px;border-bottom:1px solid var(--line)}.reportdocument{padding:24px}.printhead{display:flex;justify-content:space-between;align-items:center;gap:22px;margin-bottom:24px}.printhead img{width:250px;max-width:35%;border-radius:4px}.printhead p{font-size:12px;margin-top:3px}.printhead span{font-size:10px;letter-spacing:1px;color:var(--muted)}.reportdocument table{width:100%}.reportdocument tfoot{font-weight:700;background:#eef3ec}.reportdocument td small{display:block;color:#6c786e;font-size:10px;margin-top:3px}.reportdocument footer{border-top:1px solid var(--line);margin-top:24px;padding-top:10px;color:var(--muted);font-size:10px}.reportwarning{color:#985b23!important;background:#fff7e9;padding:10px;margin:12px 0;font-size:12px}.employeejourneys{margin-top:24px}.employeejourneys h3{margin-bottom:10px}.checkline{display:flex;gap:10px;align-items:flex-start;margin:15px 0}.checkline input{width:18px;margin-top:3px}.teamselect{border:1px solid var(--line);border-radius:8px;margin:0 0 12px;padding:12px;display:grid;grid-template-columns:repeat(2,1fr);gap:7px;max-height:180px;overflow:auto}.teamselect legend{font-size:12px;font-weight:650;padding:0 5px}.teamselect label{display:flex;align-items:center;gap:8px}.teamselect input{width:16px;margin:0;flex-shrink:0}.formnote{padding:10px 0;color:var(--green);font-size:12px}.formgrid input[readonly]{background:#f3f5f0;color:#5d735f}#monthlyPrint{display:none}@media(max-width:760px){.reportdocument{padding:15px}.printhead img{width:130px}.printhead h2{font-size:20px}.reportactions{padding:15px}.teamselect{grid-template-columns:1fr}.reportdocument td{min-width:110px}}
@media print{@page{size:A4 landscape;margin:12mm}body.report-print{background:#fff;color:#111;font-size:10px}body.report-print #app,body.report-print #dialog,body.report-print #toast{display:none!important}body.report-print #monthlyPrint{display:block!important}.reportdocument{padding:0}.printhead{margin-bottom:15px}.printhead img{width:210px;max-width:30%}.printhead h2{font-size:23px}.reportdocument .tablewrap{overflow:visible}.reportdocument table{width:100%;border-collapse:collapse;table-layout:fixed}.reportdocument th,.reportdocument td{font-size:10px;min-width:0;padding:7px 5px;overflow-wrap:anywhere;vertical-align:top}.reportdocument td small{font-size:9px}.reportdocument thead{display:table-header-group}.reportdocument tfoot{display:table-row-group}.reportdocument tr{break-inside:avoid}.reportdocument h3{break-after:avoid;font-size:13px}.reportdocument .reportnote{font-size:10px;padding:9px 0}.reportwarning{font-size:10px}.reportdocument footer{font-size:9px}.reportdocument a{color:#222;text-decoration:none}}

.teamselect .teamsearch{grid-column:1/-1;margin-bottom:5px}.teamselect label[hidden]{display:none}.compactteam{font-size:8px!important;line-height:1.3;overflow-wrap:anywhere}.pagehead>button{white-space:normal}@media print{.reportdocument th{white-space:normal;color:#333}}
.teamselect .teamsearch{width:100%;flex-shrink:1}
.syncstatus{font-size:11px;color:#47744d;white-space:nowrap}.syncstatus.reconnecting,.syncstatus.connecting,.syncstatus.pending{color:#986423}.syncstatus.offline{color:#ad4b3d}.accountactions{display:flex;gap:7px;align-items:center}.install-button{font-size:12px}.loginform>.install-button{display:block;margin:20px 0 0}.install-logo{display:block;width:100%;max-width:350px;border-radius:6px;margin:0 0 20px}#installDialog p{font-size:14px;margin:12px 0;line-height:1.6}#installDialog footer{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.offline-page{max-width:540px;margin:12vh auto;padding:24px}.offline-page img{width:100%;margin-bottom:30px}.offline-page h1{font-size:27px;margin-bottom:20px}.offline-page p{margin:18px 0;line-height:1.7}.retry-link{display:inline-block;padding:13px 22px;background:var(--green);color:white;text-decoration:none;border-radius:8px}button[hidden],p[hidden]{display:none!important}.sync-edit-warning{margin:15px 0}
@media(max-width:760px){.topbar{height:auto;min-height:75px;padding:12px 16px;gap:9px;flex-wrap:wrap}.topbar>div:first-child{display:grid;gap:4px}.topbar .eyebrow{font-size:8px}.syncstatus{font-size:10px}.accountactions{gap:0;margin-left:auto}.accountactions button{padding:7px 8px;font-size:10px}.formgrid{grid-template-columns:1fr}input,select,textarea{font-size:16px}.loginform{padding-bottom:max(30px,env(safe-area-inset-bottom))}.pagefooter{padding-bottom:max(14px,env(safe-area-inset-bottom))}}
@media print{#installDialog,.sync-edit-warning{display:none!important}}

.operations-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:20px}.operations-grid .panel{padding:24px}.operation-item{display:flex;flex-direction:column;gap:7px;padding:16px 0;border-bottom:1px solid #e5e2da}.operation-item button{align-self:flex-start}.registration-summary{display:grid;grid-template-columns:130px 1fr;gap:10px}.registration-summary dt{font-weight:600}.registration-summary dd{margin:0}.absence-card{padding:12px;border-radius:8px;background:#f6e9ce;border-left:3px solid #b1893c;margin:8px 0;display:flex;flex-direction:column;gap:4px}.registration-panel{border:1px solid #e5ddcd;border-radius:12px;padding:16px;margin:20px 0}.checklabel{display:flex;gap:10px;align-items:flex-start;margin:12px 0}.checklabel input{width:auto;min-height:18px;flex:none}.registration-state{padding:12px;background:#f4efdF;border-radius:8px}
