:root{--navy:#152b45;--ink:#20394f;--muted:#6c8092;--line:#dce5ed;--blue:#2677b8;--teal:#218e7d;--bg:#f2f6fa;--red:#a8505c;--purple:#8058a4}*{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0;min-height:100%;font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--bg)}body{padding:16px 20px 20px}a{color:var(--blue);text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.topbar{height:72px;background:var(--navy);border-radius:16px;padding:0 18px;display:flex;align-items:center;gap:44px;color:white}.brand{display:flex;align-items:center;gap:14px;min-width:420px;color:white}.brand strong{display:block;font-size:21px;letter-spacing:.3px}.brand small,.account small{display:block;font-size:12px;color:#b4c8d8;margin-top:2px}.logo{display:grid;place-items:center;background:#29b7a3;width:43px;height:43px;border-radius:9px;font-size:23px;font-weight:800}.topbar nav{display:flex;align-items:center;gap:28px;flex:1}.topbar nav a{color:#c4d2df;font-size:14px;font-weight:600}.topbar nav a:hover{color:white}.account{display:flex;align-items:center;gap:16px;font-size:13px;text-align:right}.logout{background:#294763;color:white;border:0;border-radius:8px;padding:8px 12px}.panel,.stats article,.day-card,.issue-panel,.auth-card{background:white;border:1px solid var(--line);border-radius:12px}.messages{margin:12px 0}.message{padding:11px 16px;background:#e8f7f0;border:1px solid #b4dfcc;border-radius:9px;margin:6px 0}.message.error{background:#fff0ef;border-color:#eac3bf;color:#8d3841}main{margin-top:12px}.selection{min-height:79px;display:flex;align-items:center;padding:10px 20px;gap:0}.selection label{font-size:11px;letter-spacing:.4px;color:var(--muted);font-weight:700;padding:0 22px;border-right:1px solid var(--line);min-width:15%;flex:1}.selection label:first-child{padding-left:0}.selection label select{display:block;width:100%;color:var(--ink);font-size:18px;font-weight:700;border:0;background:transparent;padding:5px 0;max-width:100%}.selection-status{display:flex;align-items:center;gap:18px;padding-left:20px;white-space:nowrap}.selection-status small{color:var(--muted)}.pill{display:inline-block;color:#745d35;background:#f8f2e3;border-radius:50px;padding:6px 12px;font-size:11px;font-weight:700;text-transform:uppercase}.pill.green{color:#187b64;background:#e8f7ef}.stats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;margin:10px 0}.stats article{padding:11px 14px;min-height:74px;border-left:4px solid var(--blue)}.stats article:nth-child(2){border-left-color:var(--teal)}.stats article:nth-child(3){border-left-color:var(--purple)}.stats article:nth-child(4){border-left-color:#bd8d38}.stats article:nth-child(5){border-left-color:#c66f5b}.stats small{display:block;color:var(--muted);font-weight:700;font-size:10px}.stats strong{display:block;font-size:22px;margin:3px 0;color:var(--navy)}.stats strong+small{font-weight:400}.calendar-heading{display:flex;justify-content:space-between;align-items:center;margin:6px 6px 4px}.calendar-heading h1{display:inline;font-size:19px;margin:0 10px 0 0}.calendar-heading span{font-size:12px;color:var(--muted)}.legend{display:flex;gap:5px}.legend span{font-size:11px;color:#a34e5a;background:#fff0f1;border:1px solid #e3aeb6;border-radius:6px;padding:3px 9px}.weekday-head{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;margin:0 6px 5px}.weekday-head span{font-size:11px;font-weight:700;color:var(--muted)}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:repeat(var(--weeks,5),minmax(90px,1fr));gap:7px;height:calc(100vh - 445px);min-height:0}.day-card{padding:8px 10px;text-align:left;min-width:0;display:flex;flex-direction:column;background:#fff;border-radius:10px;color:var(--ink);transition:box-shadow .15s,border-color .15s}.day-card:not(.blank):hover{border-color:#3c98d0;box-shadow:0 0 0 1px #3c98d0}.day-card.blank{background:#e9eef3;color:#b1bbc5;pointer-events:none}.day-card.weekend{background:#fbf7f7}.day-card.rest-holiday{background:#fff7f7;border-color:#e8bdc2}.day-card.working-holiday{border-color:#d8b6bc}.day-card.disabled{background:#f9f4f4}.day-card .day-top{display:flex;align-items:center;justify-content:space-between;gap:4px;min-height:20px}.day-number{font-size:19px;font-weight:750;color:var(--blue)}.weekend .day-number,.rest-holiday .day-number{color:var(--red)}.holiday-badge{border:1px solid #e8b9c0;background:#fff0f1;color:#a54858;font-size:9px;line-height:1.1;border-radius:20px;padding:2px 5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.day-main{border-top:1px solid #edf1f4;margin-top:4px;padding-top:5px;display:flex;justify-content:space-between;align-items:end;gap:5px}.cell-label{display:block;color:var(--muted);font-size:9px;font-weight:700;letter-spacing:.2px}.day-main strong{display:block;margin-top:2px;font-size:16px}.day-main .time{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.day-reasons{border-top:1px solid #edf1f4;margin-top:5px;padding-top:5px;display:flex;flex-wrap:wrap;gap:4px;align-items:center;min-height:21px}.reason-chip{background:#f3eaf9;color:#765097;border-radius:5px;padding:2px 5px;font-size:10px;font-weight:700;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reason-chip.leave{background:#e5f5ef;color:#1a8065}.reason-chip.overtime{background:#fff0e9;color:#b56037}.day-plus{margin-left:auto;color:var(--blue);font-weight:800}.disabled-note{font-size:12px;color:#a55e65;font-weight:700}.readonly .day-card:not(.blank){cursor:default}.readonly .day-plus{display:none}.actionbar{margin-top:10px;min-height:67px;padding:10px 18px;display:flex;justify-content:space-between;align-items:center;gap:10px}.actionbar strong{display:block}.actionbar small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.actions{display:flex;align-items:center;gap:7px}.actions form{margin:0}.primary,.secondary,.button-link{display:inline-block;border-radius:8px;padding:10px 16px;font-weight:700;font-size:12px;white-space:nowrap}.primary{background:var(--teal);border:1px solid var(--teal);color:white}.secondary{background:#f1f6fa;border:1px solid #cadce8;color:#28658f}.issue-panel{padding:12px 20px;margin-top:10px;background:#fff8f5;color:#8a4a38}.issue-panel h2{font-size:16px;margin:0 0 5px}.issue-panel ul{margin:5px 0;padding-left:20px;max-height:140px;overflow:auto}.empty-state{padding:40px;margin-top:12px;text-align:center}.auth-card{max-width:420px;margin:70px auto;padding:32px}.auth-card h1{margin-top:0}.auth-card p,.hint{color:var(--muted);font-size:13px}.auth-card label,.form-grid label,fieldset label{display:block;font-size:12px;font-weight:700;color:var(--muted);margin:10px 0}.auth-card input,.form-grid input,.form-grid select,.form-grid textarea,fieldset input,fieldset select{display:block;width:100%;margin-top:5px;padding:9px 10px;border:1px solid #cad7e1;border-radius:7px;background:white;color:var(--ink)}.auth-card button{width:100%;margin-top:14px}.company-picker{display:flex;gap:12px;flex-wrap:wrap}.company-tile{display:block;background:#f5f9fc;border:1px solid var(--line);padding:18px;border-radius:9px;min-width:220px}.company-tile span{display:block;color:var(--muted);font-size:12px;margin-top:4px}section.panel{padding:22px}.page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.page-head h1{margin:0;font-size:24px}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 18px}.form-grid .wide{grid-column:span 3}.form-grid .half{grid-column:span 2}.form-section{padding:18px 0;border-top:1px solid var(--line)}.form-section h2{font-size:18px;margin:0 0 8px}.schedule-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.schedule-grid label{min-width:0}.toolbar{display:flex;gap:8px;align-items:center;margin-top:18px}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;font-size:13px}.data-table th{background:#f5f8fb;color:var(--muted);font-size:11px}.data-table form{display:inline-block}.data-table input[type=file]{width:160px;font-size:11px}.preview-json{background:#f5f8fb;padding:18px;border-radius:9px;overflow:auto;max-height:400px;font-size:12px}dialog{border:1px solid var(--line);border-radius:14px;box-shadow:0 30px 80px #152b4560;width:min(650px,95vw);max-height:93vh;padding:0}dialog::backdrop{background:#11283e8c}.dialog-head,.dialog-actions{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--line)}.dialog-head h2{font-size:20px;margin:0}.dialog-head button{background:none;border:0;font-size:28px;color:var(--muted)}.dialog-body{padding:4px 20px 18px;max-height:68vh;overflow:auto}.dialog-body fieldset{border:0;border-bottom:1px solid var(--line);margin:0;padding:10px 0}.dialog-body legend{font-size:14px;font-weight:800;padding-top:8px}.dialog-issues{color:#a03f4d;padding:0 20px}.inline-row{display:flex;align-items:end;gap:8px;margin:7px 0}.inline-row label{flex:1;margin:0}.inline-row select{min-width:160px}.inline-row button{background:#f7ecee;border:0;border-radius:6px;padding:8px;color:#a5545c}.text-button{background:none;border:0;color:var(--blue);padding:6px 0;font-weight:700;font-size:12px}.dialog-actions{border-top:1px solid var(--line);border-bottom:0;justify-content:flex-end;gap:8px}.check{display:flex!important;align-items:center;gap:8px}.check input{width:auto!important;margin:0!important}@media(max-width:1200px){.brand{min-width:210px}.calendar{min-height:600px}.day-card{padding:5px}.selection label select{font-size:14px}.actions{flex-wrap:wrap}.stats strong{font-size:18px}}@media print{body{padding:0}.topbar,.selection,.stats,.actionbar,.dialog{display:none}}
.stats article.limit-warning{border-left-color:#d19223;background:#fffaf0}.stats article.limit-danger{border-left-color:#bf4e50;background:#fff1f1}
