:root{--brand:#7a1f1f;--brand-dark:#5c1616;--gold:#c8a44d;--bg:#f5f3ef;--bg-deep:#eae6de;--surface:#fff;--surface-sunken:#f7f5f1;--text:#201d19;--muted:#6b645a;--border:#d8d1c4;--border-soft:#e6e0d5;--green:#1f6b3a;--red:#a3272d;--amber:#8a5a00;--radius:10px;--radius-sm:6px;--shadow-sm:0 1px 2px #3c2d1e0f;--shadow-md:0 1px 3px #3c2d1e14, 0 10px 24px -14px #3c2d1e59;--shadow-lg:0 10px 30px -8px #3c2d1e47, 0 2px 6px #3c2d1e14;--ring:0 0 0 3px color-mix(in srgb, var(--brand) 22%, transparent);--sidebar-width:240px;font-family:Segoe UI,Noto Sans,Noto Sans Sinhala,Noto Sans Tamil,system-ui,sans-serif}*{box-sizing:border-box}body{color:var(--text);-webkit-font-smoothing:antialiased;background-color:var(--bg);margin:0;font-size:15px;line-height:1.55}h1,h2,h3{color:var(--brand-dark);letter-spacing:-.01em}h1{font-size:clamp(21px,4vw,29px);font-weight:700}h2{font-size:clamp(17px,3vw,21px);font-weight:700}a{color:var(--brand);text-underline-offset:2px}a:hover{color:var(--brand-dark)}img{max-width:100%;height:auto}input,select,textarea,button{max-width:100%}:where(a,button,input,select,textarea,.chip,.calendar-cell):focus-visible{outline:2px solid var(--brand);outline-offset:2px}.main h1{margin-bottom:18px;padding-bottom:11px;position:relative}.main h1:after{content:"";background:var(--gold);border-radius:2px;width:54px;height:3px;position:absolute;bottom:0;left:0}.layout{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);color:#f6f0e6;background:var(--brand-dark);background:linear-gradient(180deg, var(--brand-dark) 0%, color-mix(in srgb, var(--brand-dark) 88%, #000) 100%);flex-direction:column;flex-shrink:0;padding:0 0 16px;display:flex;box-shadow:inset -1px 0 #00000040}.sidebar .brand{border-bottom:2px solid var(--gold);color:#fff;letter-spacing:-.01em;padding:18px 16px;font-size:20px;font-weight:700}.sidebar .brand small{color:var(--gold);letter-spacing:.02em;margin-top:2px;font-size:11px;font-weight:400;display:block}.dept-mark{align-items:center;gap:10px;margin-bottom:10px;display:flex}.dept-mark-name{font-size:13px;font-weight:600;line-height:1.35}.sidebar .dept-mark{border-bottom:1px solid #ffffff26;padding-bottom:10px}.sidebar .dept-mark-name{color:var(--gold)}.login-card .dept-mark{margin-bottom:14px}.login-card .dept-mark-name{color:var(--brand-dark)}.dept-contact{border-top:1px solid var(--border);color:var(--muted);margin-top:28px;padding-top:14px;font-size:12px;line-height:1.6}.dept-contact-lines{flex-wrap:wrap;gap:4px 16px;display:flex}.sidebar nav{flex-direction:column;padding:8px 0;display:flex}.sidebar nav a{color:#ece2d2;border-left:4px solid #0000;padding:10px 16px;font-size:14px;text-decoration:none;transition:background .15s,color .15s,border-color .15s}.sidebar nav a:hover{color:#fff;background:#ffffff1a}.sidebar nav a.active{border-left-color:var(--gold);color:#fff;background:linear-gradient(90deg,#ffffff29,#ffffff0a);font-weight:600}.sidebar .spacer{flex:1}.sidebar .user{background:#00000029;border-top:1px solid #ffffff26;padding:14px 16px;font-size:13px}.mobile-header,.drawer-backdrop{display:none}.main{flex:1;min-width:0;max-width:1100px;padding:24px 32px}.topbar{justify-content:flex-end;gap:8px;margin-bottom:12px;display:flex}.card{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius);box-shadow:var(--shadow-md);margin-bottom:20px;padding:22px 26px}.card h2{border-bottom:1px solid var(--border-soft);margin-top:0;margin-bottom:16px;padding-bottom:10px}.card h2.section-divider{border-top:2px solid var(--border);border-top:2px solid color-mix(in srgb, var(--brand) 22%, var(--border-soft));margin-top:28px;padding-top:22px}.help-anchor{vertical-align:middle;display:inline-block;position:relative}:is(h1:has(+.help-anchor),h2:has(+.help-anchor),h3:has(+.help-anchor)){vertical-align:middle;margin-right:8px;display:inline-block}.field label:has(+.help-anchor){margin-right:6px;display:inline-block}.help-icon{border:1px solid color-mix(in srgb, var(--brand) 35%, var(--border));background:#f7f0ee;background:color-mix(in srgb, var(--brand) 8%, var(--surface));width:20px;height:20px;color:var(--brand);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;padding:0;font:italic 600 12px/1 Georgia,Times New Roman,serif;transition:background .15s,color .15s,border-color .15s,box-shadow .15s;display:inline-flex}.help-icon:hover,.help-icon:focus-visible,.help-icon.open{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 2px 8px -2px color-mix(in srgb, var(--brand) 60%, transparent)}.help-bubble{z-index:50;background:var(--surface);width:max-content;max-width:min(340px,100vw - 40px);color:var(--text);border:1px solid var(--border);border-top:3px solid var(--brand);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);text-align:left;white-space:normal;padding:10px 30px 10px 12px;font-size:13px;font-weight:400;line-height:1.5;position:absolute;top:calc(100% + 8px);left:0}.help-bubble-close{width:20px;height:20px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:0;font-size:12px;line-height:1;position:absolute;top:4px;right:4px}.help-bubble-close:hover{background:var(--surface-sunken);color:var(--text)}.field-note{border-left:3px solid color-mix(in srgb, var(--gold) 70%, var(--border));color:var(--muted);max-width:420px;margin:8px 0 0;padding:4px 0 4px 11px;font-size:13px;line-height:1.5}.field{margin-bottom:16px}.field label{color:var(--brand-dark);margin-bottom:5px;font-weight:600;display:block}.field label.trilingual{max-width:420px;line-height:1.5}.field input,.field select,.field textarea{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;max-width:420px;font:inherit;background:var(--surface);color:var(--text);padding:9px 11px;transition:border-color .15s,box-shadow .15s}.field input:hover,.field select:hover,.field textarea:hover{border-color:color-mix(in srgb, var(--brand) 40%, var(--border))}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--brand);box-shadow:var(--ring);outline:none}.field input:disabled{background:var(--surface-sunken);color:var(--muted)}.field .readonly{background:var(--surface-sunken);border-radius:var(--radius-sm);border:1px solid var(--border-soft);max-width:420px;color:var(--text);padding:9px 11px}.inline-form{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.config-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:0 20px;margin-bottom:6px;display:grid}.config-grid .field input{max-width:none}.btn{background:var(--brand);background:linear-gradient(180deg, var(--brand), color-mix(in srgb, var(--brand) 80%, var(--brand-dark)));color:#fff;border-radius:var(--radius-sm);font:inherit;cursor:pointer;border:none;padding:10px 20px;font-weight:600;transition:transform .12s,box-shadow .15s,background .15s,opacity .15s;box-shadow:0 1px 2px #00000024,inset 0 1px #ffffff24}.btn:hover{background:var(--brand-dark);background:linear-gradient(180deg, color-mix(in srgb, var(--brand) 88%, var(--brand-dark)), var(--brand-dark));box-shadow:0 4px 12px -3px color-mix(in srgb, var(--brand) 65%, transparent), inset 0 1px 0 #ffffff24;transform:translateY(-1px)}.btn:active{transform:translateY(0);box-shadow:0 1px 2px #0003}.btn:disabled{color:#6f6759;cursor:not-allowed;box-shadow:none;background:#d5cdc0;transform:none}.btn.secondary{background:var(--surface);color:var(--brand);border:1px solid var(--brand);border-color:color-mix(in srgb, var(--brand) 45%, var(--border));box-shadow:var(--shadow-sm)}.btn.secondary:hover{background:color-mix(in srgb, var(--brand) 7%, var(--surface));border-color:var(--brand);color:var(--brand-dark)}.btn.danger{background:linear-gradient(180deg, var(--red), #8c1f24)}.btn.danger:hover{background:linear-gradient(#8c1f24,#741a1e);box-shadow:0 4px 12px -3px #a3272d99,inset 0 1px #ffffff24}.btn.small{padding:6px 12px;font-size:13px}.chips{flex-wrap:wrap;gap:8px;margin:12px 0;display:flex}.chip{border:1px solid var(--border);background:var(--surface);cursor:pointer;font:inherit;color:var(--text);box-shadow:var(--shadow-sm);border-radius:999px;padding:7px 15px;font-size:13px;transition:background .15s,border-color .15s,color .15s,box-shadow .15s}.chip:hover{border-color:color-mix(in srgb, var(--brand) 45%, var(--border));background:color-mix(in srgb, var(--brand) 6%, var(--surface))}.chip.selected{background:var(--brand);background:linear-gradient(180deg, var(--brand), color-mix(in srgb, var(--brand) 82%, var(--brand-dark)));color:#fff;border-color:var(--brand);box-shadow:0 3px 10px -3px color-mix(in srgb, var(--brand) 65%, transparent)}.chip .count{margin-left:4px;font-weight:700}.table-wrap{-webkit-overflow-scrolling:touch;border:1px solid var(--border-soft);border-radius:var(--radius);background:var(--surface);width:100%;box-shadow:var(--shadow-sm);overflow-x:auto}.table-wrap table.data{min-width:640px}table.data{border-collapse:collapse;background:var(--surface);width:100%}table.data th,table.data td{text-align:left;border-bottom:1px solid var(--border-soft);padding:11px 13px}table.data th{background:#f4eae7;background:color-mix(in srgb, var(--brand) 10%, var(--surface));color:var(--brand-dark);text-transform:uppercase;letter-spacing:.045em;border-bottom:2px solid color-mix(in srgb, var(--brand) 28%, var(--border));white-space:nowrap;font-size:12px;font-weight:700}table.data tbody tr:nth-child(2n){background:var(--surface-sunken)}table.data tbody tr:hover td{background:color-mix(in srgb, var(--brand) 7%, var(--surface))}table.data tbody tr:last-child td{border-bottom:none}.badge{letter-spacing:.01em;border:1px solid #0000;border-radius:999px;padding:3px 11px;font-size:12px;font-weight:700;display:inline-block}.badge.approved,.badge.present{color:var(--green);background:#e3f3e8;border-color:#bcdfc6}.badge.rejected,.badge.absent,.badge.notallowed{color:var(--red);background:#fbe4e5;border-color:#f0c1c3}.badge.pending,.badge.halfday,.badge.incomplete{color:var(--amber);background:#fbeed3;border-color:#e8d3a2}.badge.neutral{background:var(--surface-sunken);color:var(--muted);border-color:var(--border)}.error{color:var(--red);border:1px solid #f0c1c3;border-left:4px solid var(--red);border-radius:var(--radius-sm);background:#fbe4e5;margin:10px 0;padding:9px 12px;font-weight:600}.success{color:var(--green);border:1px solid #bcdfc6;border-left:4px solid var(--green);border-radius:var(--radius-sm);background:#e3f3e8;margin:10px 0;padding:9px 12px;font-weight:600}.login-page{background-color:var(--brand-dark);background-image:radial-gradient(900px 620px at 22% 8%, color-mix(in srgb, var(--brand) 70%, #fff) 0%, transparent 60%), linear-gradient(155deg, var(--brand-dark), color-mix(in srgb, var(--brand-dark) 70%, #000));background-repeat:no-repeat,no-repeat;justify-content:center;align-items:center;min-height:100vh;padding:16px;display:flex}.login-card{background:var(--surface);border-top:4px solid var(--gold);border-radius:14px;width:100%;max-width:400px;padding:32px;box-shadow:0 24px 60px -18px #0000008c,0 2px 8px #0003}.login-card h1{margin:0 0 4px;font-size:22px}.login-card .gov{color:var(--muted);letter-spacing:.03em;text-transform:uppercase;margin-bottom:20px;font-size:13px;font-weight:600}.workflow-step{border:1px solid var(--border-soft);border-radius:var(--radius-sm);background:var(--surface);box-shadow:var(--shadow-sm);margin-bottom:12px;padding:15px 18px}.workflow-step.done{border-left:4px solid var(--green)}.workflow-step.waiting{border-left:4px solid var(--amber);background:#fdf7e9;background:color-mix(in srgb, #fbeed3 45%, var(--surface))}.workflow-step.rejected{border-left:4px solid var(--red)}.calendar-scroll{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:5px;min-width:560px;display:grid}.calendar-cell{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-sm);overflow-wrap:anywhere;min-height:74px;box-shadow:var(--shadow-sm);padding:5px 7px;font-size:12px;transition:box-shadow .15s,transform .12s}.calendar-cell:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.calendar-cell .day{color:var(--brand-dark);font-weight:700}.calendar-cell.holiday{background:#fbeed3;border-color:#e8d3a2}.calendar-cell.weekend{background:var(--bg-deep);border-color:var(--border)}.calendar-cell.absent{background:#fbe4e5;border-color:#f0c1c3}.calendar-cell.halfday{background:#fbeed3;border-color:#e8d3a2}.calendar-cell.present{background:#e3f3e8;border-color:#bcdfc6}.lang-switch{flex-wrap:wrap;gap:4px;display:flex}.lang-switch button{border:1px solid var(--border);background:var(--surface);cursor:pointer;color:var(--text);border-radius:999px;padding:5px 11px;font-size:12px;transition:background .15s,color .15s,border-color .15s}.lang-switch button:hover{border-color:var(--brand);color:var(--brand)}.lang-switch button.active{background:var(--brand);color:#fff;border-color:var(--brand);font-weight:600}.banner-warning{border:1px solid #e8d3a2;border-left:4px solid var(--gold);color:#6d4a06;border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);background:linear-gradient(#fdf3dd,#fbeed3);margin-bottom:18px;padding:11px 15px}.notif{border-bottom:1px solid var(--border-soft);padding:12px 6px;transition:background .15s}.notif:hover{background:var(--surface-sunken)}.notif.unread{background:#fbf6e8;background:color-mix(in srgb, var(--gold) 12%, var(--surface));border-left:3px solid var(--gold);padding-left:12px}.notif .title{color:var(--brand-dark);font-weight:700}.notif .time{color:var(--muted);font-size:12px}@media (width<=900px){.layout{display:block}.mobile-header{z-index:30;background:var(--brand-dark);background:linear-gradient(180deg, var(--brand-dark), color-mix(in srgb, var(--brand-dark) 86%, #000));color:#fff;border-bottom:2px solid var(--gold);align-items:center;gap:12px;padding:10px 14px;display:flex;position:sticky;top:0;box-shadow:0 2px 10px #00000040}.mobile-title{flex:1;font-size:18px;font-weight:700}.hamburger{color:#fff;border-radius:var(--radius-sm);cursor:pointer;background:#ffffff1a;border:1px solid #fff6;padding:6px 12px;font-size:18px;line-height:1}.sidebar{z-index:40;width:min(280px,84vw);transition:transform .22s ease-out;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;transform:translate(-100%);box-shadow:2px 0 20px #0006}.sidebar.open{transform:translate(0)}.sidebar nav a{padding:13px 16px}.drawer-backdrop{z-index:35;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#18100c80;display:block;position:fixed;inset:0}.main{max-width:none;padding:18px 16px}.topbar{display:none}}@media (width<=600px){body{font-size:14px}.main{padding:14px 12px}.card{border-radius:8px;padding:16px 15px}.field input,.field select,.field textarea,.field .readonly{max-width:none}.card>form>.btn,.card>form>button.btn,.inline-form>.btn{width:100%}.chips{gap:6px}.chip{padding:6px 12px;font-size:12px}.workflow-step{padding:13px}.calendar-cell{min-height:62px}.login-card{padding:24px 19px}.help-bubble{width:auto;max-width:none;padding:14px 34px 14px 14px;font-size:14px;position:fixed;inset:auto 12px 12px}.help-bubble-close{width:24px;height:24px;top:8px;right:8px}.field-note{max-width:none}}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}.btn:hover,.calendar-cell:hover{transform:none}}
