:root{font-family:Inter,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;color:#19304a;background:#f4f7fa;font-size:15px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:#075da9;text-decoration:none}a:hover{text-decoration:underline}.page{max-width:1200px;margin:auto;padding:0 24px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:76px;border-bottom:1px solid #dce5ed}.logo{display:flex;align-items:center;gap:12px;color:#14375f}.logo:hover{text-decoration:none}.logo-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:13px;background:#0c417b;color:#fff;font-size:23px;font-weight:800}.logo strong,.logo small{display:block}.logo small{font-size:12px;color:#6d7f91}.top-actions{display:flex;align-items:center;gap:15px}.quiet-link,.quiet-button{color:#375676;font-weight:650}.quiet-button{border:0;background:none;padding:9px}.hero{display:flex;justify-content:space-between;align-items:end;gap:24px;padding:34px 0 26px}.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:#557590;font-weight:750}.hero h1{font-size:clamp(25px,4vw,38px);line-height:1.1;margin:8px 0}.hero p{color:#58718b;margin:0}.hero-actions{display:flex;gap:10px;flex-wrap:wrap}.button,.primary,.secondary,.danger{display:inline-flex;align-items:center;justify-content:center;min-height:40px;border-radius:11px;padding:10px 15px;font-weight:700;border:1px solid transparent;text-align:center}.primary{background:#0a4d93;color:#fff}.primary:hover{background:#073e77;text-decoration:none}.secondary{background:#eaf2f9;color:#174d7e;border-color:#d3e1ed}.secondary:hover{background:#dbeaf7;text-decoration:none}.danger{background:#fff4f3;color:#9b3330;border-color:#f0c9c5}.button:disabled,.primary:disabled,.secondary:disabled,.danger:disabled{opacity:.5;cursor:not-allowed}.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:18px;margin-bottom:24px}.card{background:#fff;border:1px solid #dfE7ee;border-radius:18px;box-shadow:0 3px 16px rgba(23,54,93,.035);padding:21px;min-width:0}.span-4{grid-column:span 4}.span-5{grid-column:span 5}.span-6{grid-column:span 6}.span-7{grid-column:span 7}.span-8{grid-column:span 8}.span-12{grid-column:span 12}.card-head{display:flex;align-items:start;justify-content:space-between;gap:12px;margin-bottom:14px}.card h2{font-size:18px;line-height:1.25;margin:0}.card h3{font-size:15px;margin:0 0 4px}.muted,.card p{color:#61768a;line-height:1.45}.card p{margin:8px 0 14px}.card-head p{margin:5px 0 0}.count{background:#e9f2fa;color:#0d4a83;font-size:12px;font-weight:750;padding:6px 9px;border-radius:100px;white-space:nowrap}.metric{font-size:35px;line-height:1;font-weight:800;color:#123d72;margin:8px 0}.metric-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.metric-small{padding:12px;border-radius:12px;background:#f1f6fa}.metric-small strong{display:block;font-size:22px;color:#153b67}.metric-small span{font-size:12px;color:#60758b}.status{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;padding:5px 9px;border-radius:100px;background:#eef2f6;color:#586e84}.status.approved,.status.present{background:#e3f5ed;color:#167151}.status.pending,.status.manager_pending,.status.hr_pending{background:#fff2d8;color:#896010}.status.rejected,.status.outside,.status.unmarked{background:#fdeae8;color:#aa4139}.status.off,.status.leave{background:#e9effa;color:#3b6097}.row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-top:1px solid #edf1f5}.row:first-of-type{border-top:0}.row strong{font-size:14px}.row small{display:block;color:#688096;margin-top:3px;line-height:1.35}.row-main{min-width:0}.row-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}.row-actions button{min-height:34px;padding:6px 10px;font-size:12px}.stack{display:grid;gap:10px}.notice{padding:12px 14px;border-radius:12px;background:#eef5fb;color:#3b6083;font-size:13px;line-height:1.4}.warning{background:#fff5e8;color:#785123}.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.field{display:grid;gap:6px;min-width:0}.field.full{grid-column:1/-1}.field label{font-size:12px;font-weight:700;color:#526c83}.field input,.field select,.field textarea{min-width:0;width:100%;border:1px solid #cad9e5;border-radius:10px;background:#fff;padding:10px 11px;color:#183752}.field textarea{min-height:62px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid #9cc7e9;outline-offset:1px}.form .primary{grid-column:1/-1}.mini-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px}.mini-actions a,.mini-actions button{font-size:13px}.table-wrap{overflow:auto;max-height:480px;border:1px solid #e5edf3;border-radius:11px}.timesheet{border-collapse:collapse;min-width:720px;width:100%;font-size:12px}.timesheet th,.timesheet td{border-bottom:1px solid #e8eef3;padding:8px;text-align:center;white-space:nowrap}.timesheet thead th{position:sticky;top:0;background:#eaf1f6;z-index:1}.timesheet th:first-child{text-align:left;position:sticky;left:0;background:#fff;z-index:2;min-width:160px}.timesheet thead th:first-child{background:#eaf1f6;z-index:3}.timesheet small{display:block;color:#70869c}.timesheet td.weekend{background:#fff7e6}.section-title{font-size:16px;margin:28px 0 14px;color:#365a79}.empty{color:#70869c;font-size:14px;padding:12px 0}.loading{padding:70px 0;text-align:center;color:#678099}.login{max-width:460px;margin:60px auto}.login h1{font-size:30px;margin:8px 0}.login .card{margin-top:20px}.login .stack{margin-top:18px}.login .stack button{width:100%}.login .field{margin:14px 0}.login .primary{width:100%}.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%) translateY(30px);opacity:0;pointer-events:none;background:#173b60;color:#fff;padding:12px 18px;border-radius:12px;box-shadow:0 12px 30px #152e4655;transition:.2s;max-width:min(90vw,500px);z-index:10}.toast.show{opacity:1;transform:translateX(-50%)}footer{display:flex;justify-content:space-between;gap:12px;color:#8ba0b2;font-size:12px;padding:22px 0 34px;border-top:1px solid #dde6ed}[hidden]{display:none!important}@media(max-width:800px){.span-4,.span-5,.span-6,.span-7,.span-8{grid-column:span 12}.page{padding:0 16px}.topbar{min-height:64px}.hero{align-items:start;flex-direction:column;padding:26px 0 20px}.grid{gap:12px}.card{padding:17px}.metric-row{gap:7px}}@media(max-width:520px){.top-actions{gap:7px}.quiet-link,.quiet-button{font-size:12px}.logo small{display:none}.hero h1{font-size:27px}.row{align-items:flex-start;flex-direction:column}.row-actions{justify-content:flex-start}.form{grid-template-columns:1fr}.metric-small{padding:10px}.metric-small strong{font-size:19px}}
.role-action-links{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.role-action-links>*{flex:1 1 180px}
.auth-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:15px 0}.auth-switch button{min-height:42px}.auth-switch .active{background:#14375f;color:#fff}[data-auth-panel][hidden]{display:none!important}
/* Карточка учётной записи и обсуждение записи */
.identity-card{grid-column:span 12;border-color:#cbded9}.role-badges{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.record-discussion{margin-top:12px;border-top:1px solid #dce5ed;padding-top:10px;min-width:0}.discussion-toggle{min-height:34px;padding:6px 10px;font-size:12px}.discussion-panel{margin-top:9px;padding:10px;background:#f5f9fa;border-radius:12px}.discussion-item{padding:8px 0;border-bottom:1px solid #dce5ed}.discussion-item strong,.discussion-item small{font-size:12px}.discussion-item small{margin-left:6px;color:#60748a}.discussion-item p{margin:4px 0;white-space:pre-wrap;overflow-wrap:anywhere}.discussion-form textarea{width:100%;min-height:68px}.discussion-form button{margin-top:8px}
@media(max-width:520px){.topbar{flex-wrap:wrap;padding:10px 0}.top-actions{width:100%;justify-content:space-between;flex-wrap:wrap}.top-actions .quiet-link{white-space:nowrap}}
