.layout{display:flex;min-height:100vh}.sidebar{width:220px;background:var(--white);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:20px 12px;gap:4px;flex-shrink:0}.brand{font-size:16px;font-weight:700;color:var(--emerald-dark);padding:4px 12px 16px}.sidebar nav{display:flex;flex-direction:column;gap:2px;flex:1}.nav-btn{background:none;color:var(--ink);font-weight:500;text-align:left;padding:8px 12px;border-radius:8px;font-size:13px}.nav-btn:hover{background:var(--bg)}.nav-btn.active{background:var(--emerald-soft);color:var(--emerald-dark)}.logout{margin-top:auto;width:100%}.content{flex:1;padding:28px 32px;overflow-y:auto}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.page-title{font-size:20px;font-weight:700}.card{background:var(--white);border-radius:12px;border:1px solid var(--line);overflow:hidden}.error{color:var(--danger-text);padding:12px}.empty{color:var(--muted);padding:20px;text-align:center}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:var(--white);border-radius:16px;padding:24px;width:480px;max-width:95vw;display:flex;flex-direction:column;gap:14px}.modal h2{font-size:16px}.form-row{display:flex;flex-direction:column;gap:4px}.form-row label{font-size:12px;font-weight:600;color:var(--muted)}.modal-actions{display:flex;gap:8px;justify-content:flex-end}.detail-panel{background:var(--bg);border-radius:10px;padding:14px 16px;margin-bottom:8px;font-size:13px;line-height:1.7}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--emerald: #059669;--emerald-dark: #047857;--emerald-soft: #d1fae5;--ink: #0d211a;--muted: #7c9388;--line: #e8efe9;--paper: #fbfdfc;--bg: #e9efeb;--white: #ffffff;--warn: #fef3c7;--warn-text: #b45309;--danger: #fee2e2;--danger-text: #b91c1c}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.5}a{color:var(--emerald);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;font-family:inherit;font-size:13px;border:none;border-radius:8px;padding:6px 14px;background:var(--emerald);color:#fff;font-weight:600}button:hover{background:var(--emerald-dark)}button.secondary{background:var(--line);color:var(--ink)}button.secondary:hover{background:#d1e0d5}button.danger{background:var(--danger);color:var(--danger-text)}button:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{font-family:inherit;font-size:13px;border:1px solid var(--line);border-radius:8px;padding:7px 10px;background:var(--white);color:var(--ink);width:100%}input:focus,select:focus,textarea:focus{outline:2px solid var(--emerald);outline-offset:1px}table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--line)}th{font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:var(--bg)}tr:last-child td{border-bottom:none}tr:hover td{background:#f7faf8}.badge{display:inline-block;padding:2px 10px;border-radius:99px;font-size:12px;font-weight:600}.badge-green{background:var(--emerald-soft);color:var(--emerald-dark)}.badge-yellow{background:var(--warn);color:var(--warn-text)}.badge-red{background:var(--danger);color:var(--danger-text)}.badge-gray{background:var(--line);color:var(--muted)}
