:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:system-ui,-apple-system,sans-serif;font-size:14px;background:#f5f6fa;color:#222}.app-nav{display:flex;align-items:center;gap:4px;background:#1a1a2e;padding:0 16px;height:48px}.brand{color:#fff;font-weight:700;font-size:1.1rem;margin-right:16px}.nav-link{color:#aab;text-decoration:none;padding:6px 10px;border-radius:4px;font-size:.9rem}.nav-link:hover{background:#ffffff1a;color:#fff}.nav-link.active{background:#ffffff2e;color:#fff}.logout{margin-left:auto}.app-main{padding:24px}.page{max-width:1200px;margin:0 auto}.page-header{display:flex;align-items:center;gap:12px;margin-bottom:16px}.page-header h1{font-size:1.4rem;flex:1}.search-input{padding:6px 10px;border:1px solid #ccc;border-radius:4px}button{padding:6px 12px;border:none;border-radius:4px;cursor:pointer;background:#1a1a2e;color:#fff;font-size:.85rem}button:hover{background:#2d2d5e}button:disabled{opacity:.5;cursor:default}.btn-active{background:#2563eb}.btn-approve{background:#1f8a4c}.btn-reject{background:#c0392b}.inline-form{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:16px;margin-bottom:16px;display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}.inline-form h3{width:100%}.inline-form label{display:flex;flex-direction:column;gap:4px;font-size:.85rem}.inline-form input,.inline-form select{padding:6px 8px;border:1px solid #ccc;border-radius:4px;min-width:160px}.form-row{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;width:100%}.data-table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #00000014}.data-table th,.data-table td{padding:8px 12px;text-align:left;border-bottom:1px solid #f0f0f0}.data-table th{background:#f8f9fb;font-weight:600}.data-table tr:last-child td{border-bottom:none}.inactive-row{opacity:.5}.error-row{background:#fff0f0}.status-badge{padding:2px 8px;border-radius:12px;color:#fff;font-size:.8rem;white-space:nowrap}.grid-toolbar{display:flex;gap:8px;align-items:center;margin-bottom:12px;flex-wrap:wrap}.mode-label{margin-left:12px;font-weight:600}.grid-scroll{overflow-x:auto}.grid-table{border-collapse:collapse;white-space:nowrap}.grid-table th,.grid-table td{border:1px solid #e0e0e0;padding:0;min-width:32px;text-align:center;font-size:.75rem}.grid-table th{background:#f8f9fb;font-size:.7rem;padding:2px 4px}.name-col{position:sticky;left:0;background:#fff;z-index:2;font-weight:600;padding:4px 8px!important;min-width:130px;text-align:left!important}.grid-table th.name-col{background:#f8f9fb}.today-col{background:#fffbcc!important}.grid-cell{height:28px;cursor:default}.grid-cell.clickable{cursor:pointer}.grid-cell.clickable:hover{filter:brightness(.88)}.cell-code{font-size:.68rem;color:#fff;font-weight:600;text-shadow:0 1px 1px rgba(0,0,0,.4)}.month-label{font-size:.65rem;color:#666}.grid-legend{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.grid-legend span{padding:3px 10px;border-radius:4px;color:#fff;font-size:.78rem}.suggestions{position:absolute;background:#fff;border:1px solid #ccc;border-radius:4px;list-style:none;max-height:180px;overflow-y:auto;z-index:100;min-width:200px}.suggestions li{padding:6px 10px;cursor:pointer}.suggestions li:hover{background:#f0f4ff}.admin-section{margin-bottom:32px}.admin-section h2{margin-bottom:10px;font-size:1.1rem}
