:root{--bg: #f4f5f9;--panel: #ffffff;--panel-raised: #f8fafc;--border: transparent;--border-subtle: #f1f3f9;--text: #1e2432;--text-muted: #64748b;--text-faint: #94a3b8;--accent: #262261;--accent-hover: #1c1a4d;--accent-light: #3d3a8a;--accent-dim: #eceaf8;--status-pending: #e27d14;--status-pending-bg: #fff7ed;--status-final: #262261;--status-final-bg: #eceaf8;--status-approved: #10b981;--status-approved-bg: #ecfdf5;--status-done: #2563eb;--status-done-bg: #eff6ff;--status-rejected: #ef4444;--status-rejected-bg: #fef2f2;--font-ui: "Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--radius-sm: 10px;--radius: 16px;--radius-lg: 22px;--radius-xl: 28px;--shadow-sm: 0 2px 8px rgba(99, 102, 241, .04), 0 1px 3px rgba(0, 0, 0, .03);--shadow-md: 0 10px 25px -5px rgba(50, 50, 93, .05), 0 6px 12px -3px rgba(0, 0, 0, .03);--shadow-lg: 0 18px 36px -8px rgba(67, 72, 116, .08), 0 8px 16px -4px rgba(0, 0, 0, .03);--shadow-hover: 0 20px 38px -6px rgba(38, 34, 97, .12), 0 10px 20px -5px rgba(0, 0, 0, .04)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font-ui);font-size:12px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{font-family:var(--font-ui);cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px}input:not(.MuiInputBase-input),select:not(.MuiNativeSelect-select),textarea:not(.MuiInputBase-input){font-family:var(--font-ui);background:var(--panel);border:1px solid transparent;color:var(--text);border-radius:var(--radius-sm);padding:8px 12px;font-size:12px;box-shadow:0 2px 6px #0000000a;transition:background .15s ease,box-shadow .15s ease}input:not(.MuiInputBase-input):hover,select:not(.MuiNativeSelect-select):hover,textarea:not(.MuiInputBase-input):hover{background:#fdfdfe;box-shadow:0 3px 8px #0000000f}input:not(.MuiInputBase-input):focus,select:not(.MuiNativeSelect-select):focus,textarea:not(.MuiInputBase-input):focus{background:#fff;box-shadow:0 0 0 3px #26226126,0 3px 10px #0000000d;outline:none}textarea{resize:vertical}.app-shell{display:flex;min-height:100vh}.sidebar{width:240px;flex-shrink:0;background:var(--panel);border-right:none;box-shadow:var(--shadow-sm);padding:24px 16px;display:flex;flex-direction:column;transition:transform .25s cubic-bezier(.16,1,.3,1)}.sidebar-brand{font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--text-muted);padding:0 10px 20px;border-bottom:none;margin-bottom:16px}.sidebar-brand strong{color:var(--text);display:block;font-size:14px}.nav-item{display:flex;align-items:center;gap:10px;padding:8px 11px;border-radius:12px;color:var(--text-muted);font-size:12px;font-weight:500;margin-bottom:3px;cursor:pointer;transition:all .18s ease}.nav-item:hover{background:#f1f3f9;color:var(--text);text-decoration:none;transform:translate(2px)}.nav-item.active{background:var(--accent-dim);color:var(--accent);font-weight:600;border-left:none}.sidebar-footer{margin-top:auto;padding-top:16px;border-top:none}.user-chip{display:flex;flex-direction:column;gap:2px;padding:8px 10px;font-size:12.5px}.user-chip .name{color:var(--text);font-weight:600}.user-chip .role{color:var(--text-faint);font-family:var(--font-mono);font-size:11px;text-transform:lowercase}.logout-btn{background:none;border:none;color:var(--text-faint);font-size:12.5px;padding:8px 10px;width:100%;text-align:left}.logout-btn:hover{color:var(--status-rejected)}.main{flex:1;padding:28px 36px;max-width:1200px;min-width:0}.hamburger-btn{display:none;background:var(--panel);border:none;border-radius:12px;color:var(--text);padding:9px 12px;font-size:16px;line-height:1;box-shadow:var(--shadow-sm)}.sidebar-overlay{display:none}.topbar{display:flex;justify-content:flex-end;margin-bottom:8px;position:relative}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.page-header h1{font-size:17px;font-weight:700;letter-spacing:-.02em;margin:0 0 3px;color:var(--text)}.page-header p{color:var(--text-muted);margin:0;font-size:11.5px}.panel{background:var(--panel);border:none;border-radius:var(--radius);box-shadow:var(--shadow-md);transition:transform .2s ease,box-shadow .2s ease}.panel:hover{box-shadow:var(--shadow-lg)}.table-wrap{overflow-x:auto;border-radius:var(--radius)}table{width:100%;border-collapse:separate;border-spacing:0}th{text-align:left;font-size:10.5px;font-weight:600;color:var(--text-faint);text-transform:uppercase;letter-spacing:.05em;padding:10px 14px;border-bottom:1px solid #f1f3f9;background:#fafbfc}td{padding:10px 14px;border-bottom:1px solid #f8fafc;font-size:12px;vertical-align:middle}tr:last-child td{border-bottom:none}tr:not(.MuiTableRow-root):hover td{background:#f9faff}.mono{font-family:var(--font-mono);font-size:12.5px;color:var(--text-muted)}.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.badge-pending{background:var(--status-pending-bg);color:var(--status-pending)}.badge-final{background:var(--status-final-bg);color:var(--status-final)}.badge-approved{background:var(--status-approved-bg);color:var(--status-approved)}.badge-done{background:var(--status-done-bg);color:var(--status-done)}.badge-rejected{background:var(--status-rejected-bg);color:var(--status-rejected)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:7px 14px;border-radius:12px;font-size:12px;font-weight:600;border:none;cursor:pointer;box-shadow:var(--shadow-sm);transition:all .2s cubic-bezier(.16,1,.3,1)}.btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #00000014;text-decoration:none}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn-primary{background:var(--accent);color:#fff;box-shadow:0 4px 14px #26226140}.btn-primary:hover{background:var(--accent-hover);box-shadow:0 6px 18px #26226159;color:#fff}.btn-secondary{background:#f3f4fa;color:#43495b}.btn-secondary:hover{background:#e8ebf5;color:#1e2432}.btn-approve{background:#10b981;color:#fff;box-shadow:0 4px 12px #10b98140}.btn-approve:hover{background:#059669}.btn-reject{background:#fee2e2;color:#dc2626;border:none}.btn-reject:hover{background:#fecaca}.btn-ghost{background:#fff;color:var(--text-muted);border:none;box-shadow:var(--shadow-sm)}.btn-ghost:hover{background:#f8fafc;color:var(--text)}.field{margin-bottom:16px}.field label{display:block;font-size:11px;font-weight:600;color:var(--text-muted);margin-bottom:5px}.field input,.field select,.field textarea{width:100%}.field-hint{font-size:11.5px;color:var(--text-faint);margin-top:5px}.form-panel{padding:24px;max-width:560px}.empty-state{padding:48px 24px;text-align:center;color:var(--text-faint);font-size:13.5px}.error-banner{background:var(--status-rejected-bg);color:var(--status-rejected);border:none;border-radius:var(--radius);padding:12px 18px;font-size:13.5px;font-weight:500;box-shadow:0 4px 14px #ef444414;margin-bottom:16px}.notif-panel{position:absolute;right:36px;top:60px;width:320px;max-height:400px;overflow-y:auto;z-index:20;background:var(--panel);border:none;border-radius:var(--radius);box-shadow:0 16px 36px #0f172a1f}.notif-item{padding:14px 16px;border-bottom:1px solid #f8fafc;font-size:13px}.notif-item:last-child{border-bottom:none}.notif-item .msg{color:var(--text);margin-bottom:4px;font-weight:500}.notif-item .time{color:var(--text-faint);font-family:var(--font-mono);font-size:11px}.bell-btn{position:relative;background:var(--panel);border:none;border-radius:12px;padding:9px 12px;color:var(--text-muted);box-shadow:var(--shadow-sm)}.bell-btn:hover{background:#f8fafc}.bell-dot{position:absolute;top:6px;right:8px;width:8px;height:8px;border-radius:50%;background:var(--status-rejected)}.login-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg)}.login-box{width:100%;max-width:380px;padding:36px 32px;background:var(--panel);border:none;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.login-box h1{font-size:18px;margin:0 0 2px}.login-box .sub{color:var(--text-muted);font-size:13px;margin:0 0 24px}.attach-menu{position:absolute;top:calc(100% + 6px);left:0;width:220px;z-index:30;padding:8px;background:var(--panel);border:none;border-radius:var(--radius);box-shadow:0 12px 32px #0f172a1f}.attach-menu-item{display:flex;align-items:center;gap:10px;width:100%;background:none;border:none;color:var(--text);font-size:13.5px;padding:10px 12px;border-radius:var(--radius-sm);text-align:left}.attach-menu-item:hover{background:#f1f3f9}.attach-chip{display:inline-flex;align-items:center;gap:8px;background:#f1f3f9;border:none;border-radius:999px;padding:6px 10px 6px 14px;font-size:12px;color:var(--text-muted)}.attach-chip button{background:none;border:none;color:var(--text-faint);font-size:15px;line-height:1;padding:2px 4px}.attach-chip button:hover{color:var(--status-rejected)}.attachment-thumb{width:56px;height:56px;object-fit:cover;border-radius:var(--radius-sm);border:none;background:#f1f3f9;box-shadow:var(--shadow-sm)}.attachment-thumb-placeholder{width:56px;height:56px;border-radius:var(--radius-sm);border:none;background:#f1f3f9}.chat-box{padding:16px;background:#f8faff;border:none;border-radius:var(--radius)}.chat-messages{display:flex;flex-direction:column;gap:8px;max-height:260px;overflow-y:auto;margin-bottom:12px;padding-right:4px}.chat-bubble-row{display:flex;justify-content:flex-start}.chat-bubble-row.mine{justify-content:flex-end}.chat-bubble{max-width:75%;background:#fff;border:none;border-radius:14px;padding:10px 14px;box-shadow:0 2px 8px #0f172a0a}.chat-bubble.mine{background:#eeeffe}.chat-sender{font-size:11px;font-weight:600;color:var(--accent);margin-bottom:3px}.chat-text{font-size:13px;color:var(--text);white-space:pre-wrap;word-break:break-word}.chat-time{font-size:10.5px;color:var(--text-faint);font-family:var(--font-mono);margin-top:4px}.chat-input-row{display:flex;gap:8px}.chat-input-row input{flex:1}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:24px}.stat-card{padding:16px 18px}.stat-card .num{font-family:var(--font-mono);font-size:26px;font-weight:500;color:var(--text)}.stat-card .label{color:var(--text-muted);font-size:12px;margin-top:2px}@media (max-width: 860px){.app-shell{position:relative}.sidebar{position:fixed;top:0;left:0;bottom:0;z-index:50;transform:translate(-100%);box-shadow:4px 0 24px #0f172a26}.sidebar.open{transform:translate(0)}.sidebar-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a59;z-index:40}.hamburger-btn{display:inline-flex;align-items:center;justify-content:center}.topbar{justify-content:space-between}.main{padding:18px 16px 32px;max-width:100%}.page-header{flex-direction:column;gap:12px}.page-header h1{font-size:18px}.form-panel{padding:18px;max-width:100%}.stat-grid{grid-template-columns:repeat(2,1fr)}th,td{padding:10px 12px;font-size:12.5px}.notif-panel{right:16px;left:16px;width:auto;top:56px}}@media (max-width: 480px){.stat-grid{grid-template-columns:1fr 1fr}.login-box{padding:24px 20px}.btn{padding:9px 13px;font-size:13px}}
