:root{--bg: #f6f6f3;--panel: #ffffff;--ink: #111111;--muted: #666666;--soft: #e8e8e4;--line: #d7d7d2;--black: #000000;--white: #ffffff;--subtle: #f0f0ed;--danger: #8f1b1b;--success: #1f5f3a;color:var(--ink);background:var(--bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:inherit;text-decoration:none}textarea{min-height:112px;resize:vertical}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:8px;background:var(--white);color:var(--ink);padding:11px 12px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--black)}.screen-state{min-height:100vh;display:grid;place-items:center;color:var(--muted)}.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-panel{width:min(100%,460px);background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:36px;display:grid;gap:18px}.auth-mark{width:44px;height:44px;display:grid;place-items:center;background:var(--black);color:var(--white);border-radius:8px;font-weight:800}.auth-panel h1,.page-header h1{margin:0;letter-spacing:0}.auth-panel p,.page-header p{margin:0;color:var(--muted);line-height:1.6}.notice{display:grid;gap:6px;border:1px solid var(--line);border-radius:8px;background:var(--subtle);padding:14px}.app-shell{display:grid;grid-template-columns:248px 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;border-right:1px solid var(--line);background:var(--panel);padding:22px;display:flex;flex-direction:column;justify-content:space-between}.brand,.mobile-brand{font-weight:800}.nav-list{display:grid;gap:6px;margin-top:28px}.nav-item,.bottom-nav-item{display:flex;align-items:center;gap:10px;color:var(--muted);border-radius:8px}.nav-item{padding:11px 12px}.nav-item.active,.bottom-nav-item.active{color:var(--ink);background:var(--subtle)}.profile-box{display:grid;gap:8px;border-top:1px solid var(--line);padding-top:16px}.profile-name{font-weight:700}.profile-role,.topbar-subtitle{color:var(--muted);font-size:13px}.main-wrap{min-width:0}.topbar{display:none}.content{width:min(100%,1180px);margin:0 auto;padding:34px}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:22px}.page-header h1{font-size:30px;line-height:1.15}.page-actions{display:flex;gap:10px}.primary-button,.secondary-button,.icon-text-button,.icon-button{border:1px solid var(--black);border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:8px}.primary-button{background:var(--black);color:var(--white);padding:11px 14px}.submit-button{width:100%;min-height:56px;margin-top:18px;font-weight:800}.secondary-button,.icon-text-button{background:var(--white);color:var(--ink);padding:10px 13px}.icon-button{width:40px;height:40px;background:var(--white);color:var(--ink);padding:0}.icon-button.danger{color:var(--danger);border-color:var(--danger)}.panel,.metric-card,.clock-panel{background:var(--panel);border:1px solid var(--line);border-radius:8px}.panel{padding:20px}.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px}.metric-card{min-height:126px;padding:18px;display:grid;gap:12px;align-content:start}.metric-card span{color:var(--muted)}.metric-card strong{font-size:26px}.section-title{font-weight:800;margin-bottom:14px}.table-list,.people-list{display:grid;gap:10px}.table-row,.person-row,.approval-row,.event-card{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:8px;padding:12px}.person-row{display:grid;grid-template-columns:1fr auto 160px 140px}.person-row div,.approval-row div,.event-card div{min-width:0;display:grid;gap:4px}.person-row span,.person-row small,.approval-row span,.event-card span,.empty-state span{color:var(--muted)}.status-pill{width:fit-content;display:inline-flex;align-items:center;min-height:28px;border:1px solid var(--line);border-radius:999px;padding:4px 9px;font-size:13px;color:var(--ink);background:var(--subtle);white-space:nowrap}.status-approved,.status-normal{border-color:#bfd0c5;background:#edf6f0;color:var(--success)}.status-rejected,.status-deleted,.status-suspended,.status-late,.status-early_leave,.status-missing_punch{border-color:#e1c4c4;background:#fbefef;color:var(--danger)}.clock-panel{min-height:240px;padding:24px;display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;margin-bottom:18px}.clock-panel h2{margin:4px 0 10px;font-size:42px}.clock-actions,.form-stack{display:grid;gap:12px}.eyebrow{color:var(--muted);text-transform:uppercase;font-size:12px}.inline-message,.form-errors{grid-column:1 / -1;color:var(--muted);background:var(--subtle);border:1px solid var(--line);border-radius:8px;padding:10px 12px}.grid-2,.approval-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.approval-grid{grid-template-columns:1fr}.form-row,.filter-bar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.filter-bar{grid-template-columns:1fr 170px 170px 170px;margin-bottom:16px}.search-input{position:relative}.search-input svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--muted)}.search-input input{padding-left:38px}.calendar-nav{display:flex;align-items:center;gap:10px}.calendar-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:8px;overflow:hidden}.calendar-weekday,.calendar-day{background:var(--panel);min-height:42px;padding:10px}.calendar-weekday{color:var(--muted);text-align:center;font-size:13px}.calendar-day{min-height:132px;border:0;text-align:left;display:grid;align-content:start;gap:8px}.calendar-day:hover{background:var(--subtle)}.calendar-day-empty,.calendar-day-empty:hover{background:#f1f1ee}.calendar-day span{font-weight:800}.calendar-day small{display:block;color:var(--muted);line-height:1.45;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detail-panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:18px;min-height:420px}.event-card{align-items:flex-start;margin-bottom:10px;flex-wrap:wrap}.event-card p{flex-basis:100%;margin:0;color:var(--muted)}.definition-list{display:grid;gap:12px;margin:0}.definition-list div{display:grid;grid-template-columns:120px 1fr;gap:10px}.definition-list dt{color:var(--muted)}.definition-list dd{margin:0}.finance-placeholder{min-height:300px;display:grid;place-items:center;text-align:center;gap:10px}.finance-placeholder h2,.finance-placeholder p{margin:0;max-width:560px}.empty-state{min-height:120px;display:grid;place-items:center;text-align:center;color:var(--muted);background:var(--subtle);border:1px dashed var(--line);border-radius:8px;padding:18px}.bottom-nav{display:none}@media (max-width: 900px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;background:color-mix(in srgb,var(--panel) 92%,transparent);border-bottom:1px solid var(--line);padding:12px 16px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.content{padding:20px 16px 92px}.page-header,.clock-panel,.calendar-layout,.grid-2,.metric-grid,.filter-bar,.form-row{grid-template-columns:1fr}.page-header{display:grid}.page-header h1{font-size:25px}.clock-panel h2{font-size:34px}.calendar-day{min-height:92px;padding:8px}.calendar-day small{display:none}.person-row{grid-template-columns:1fr}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:20;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;border-top:1px solid var(--line);background:var(--panel);padding:8px}.bottom-nav-item{min-width:0;min-height:56px;justify-content:center;flex-direction:column;gap:4px;font-size:12px}.definition-list div{grid-template-columns:1fr}}@media (max-width: 520px){.auth-panel{padding:24px}.calendar-grid{font-size:12px}.calendar-weekday,.calendar-day{min-height:44px;padding:6px}.table-row,.approval-row{align-items:flex-start;flex-wrap:wrap}}
