@import"https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap";:root{--bg: #f4f7f3;--surface: #ffffff;--surface-soft: #eef4ed;--text: #18221d;--muted: #587063;--primary: #1e6f5c;--primary-strong: #145143;--danger: #ba3e37;--line: #d4e1d8;--shadow: 0 10px 24px rgba(20, 41, 34, .08)}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-width:320px;font-family:Manrope,Segoe UI,sans-serif;color:var(--text);background:radial-gradient(circle at 10% 8%,#d9eadc 0%,transparent 22%),radial-gradient(circle at 90% 0%,#d2e2d4 0%,transparent 18%),var(--bg)}a{color:inherit}#root{min-height:100vh}.app-shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.sidebar{background:linear-gradient(180deg,#163f34,#1e5a4b);color:#e8f2ed;padding:24px 18px;position:sticky;top:0;align-self:start;height:100vh}.brand{display:grid;gap:2px;margin-bottom:26px}.brand-top{font-size:.85rem;opacity:.75}.brand-bottom{font-size:1.45rem;font-weight:800;letter-spacing:.4px}.sidebar-nav{display:grid;gap:8px}.sidebar-link{border-radius:10px;padding:10px 12px;color:#d9ebe3;text-decoration:none;font-weight:600}.sidebar-link:hover{background:#e4f4ec2e}.sidebar-link.active{background:#f2f8f4;color:#1b5747}.content-shell{display:grid;grid-template-rows:74px 1fr}.topbar{border-bottom:1px solid var(--line);background:#ffffffe6;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);display:flex;align-items:center;justify-content:space-between;padding:14px 24px}.topbar-label{margin:0;font-weight:700}.topbar-role{margin:2px 0 0;color:var(--muted);font-size:.88rem}.content{padding:24px}.page-stack{display:grid;gap:16px}.page-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.page-header h1{margin:0;font-size:1.55rem}.page-header p{margin:6px 0 0;color:var(--muted)}.grid-cards{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.tile{display:block;text-decoration:none;padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow)}.tile h3{margin:0 0 8px}.tile p{margin:0;color:var(--muted)}.form-grid{display:grid;gap:12px}.field{display:grid;gap:6px}.field label{font-weight:600;font-size:.92rem}.input{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:11px 12px;font-size:.95rem}.input:focus{outline:2px solid #b6d8ca;border-color:var(--primary)}.field-error{margin:0;font-size:.83rem;color:var(--danger)}.btn{border:none;border-radius:10px;cursor:pointer;padding:10px 14px;font-weight:700;font-size:.92rem}.btn:disabled{opacity:.65;cursor:not-allowed}.btn-primary{background:var(--primary);color:#f2fbf8}.btn-primary:hover:not(:disabled){background:var(--primary-strong)}.btn-secondary{background:var(--surface-soft);color:var(--text)}.btn-secondary:hover:not(:disabled){background:#dde9de}.btn-danger{background:var(--danger);color:#fff2f2}.btn-danger:hover:not(:disabled){background:#992f2a}.btn-ghost{background:transparent;border:1px solid var(--line);color:var(--text)}.alert{border-radius:10px;padding:11px 12px;border:1px solid transparent}.alert-error{background:#ffeceb;border-color:#f5c7c4;color:#782925}.alert-info{background:#edf6f1;border-color:#cfe2d8;color:#33574b}.alert-success{background:#e7f8ea;border-color:#b7e2be;color:#2b6c37}.table-wrap{border:1px solid var(--line);border-radius:12px;overflow:auto;background:var(--surface)}.table{width:100%;border-collapse:collapse;min-width:760px}.table th,.table td{border-bottom:1px solid var(--line);padding:11px 12px;text-align:left}.table th{background:#f6faf7;font-size:.86rem;text-transform:uppercase;letter-spacing:.5px}.actions-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.inline-link{color:var(--primary-strong);text-decoration:none;font-weight:700;background:none;border:none;cursor:pointer;padding:0}.inline-link.danger{color:#9c302a}.loader-wrap{display:inline-flex;align-items:center;gap:10px;color:var(--muted)}.loader{width:18px;height:18px;border-radius:999px;border:3px solid #c5d9cd;border-top-color:var(--primary);animation:spin .8s linear infinite}.modal-backdrop{position:fixed;inset:0;background:#14231e7a;display:grid;place-items:center;padding:16px;z-index:10}.modal-card{width:min(680px,100%);background:var(--surface);border-radius:12px;box-shadow:var(--shadow);border:1px solid var(--line)}.modal-head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:14px 16px}.modal-head h3{margin:0}.modal-close{border:none;background:transparent;cursor:pointer;font-size:1rem;color:var(--muted)}.modal-body{padding:16px}.detail-card{border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:var(--shadow);padding:16px}.detail-card p{margin:0 0 8px}.detail-card p:last-child{margin-bottom:0}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:16px}.auth-card{width:min(520px,100%);border:1px solid var(--line);border-radius:14px;padding:24px;background:var(--surface);box-shadow:var(--shadow)}.auth-card h1{margin:0}.auth-card p{color:var(--muted)}.auth-footnote{margin-top:12px;font-size:.92rem}.auth-footnote a{color:var(--primary-strong);font-weight:700}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{height:auto;position:relative}.sidebar-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.content{padding:16px}.page-header{flex-direction:column;align-items:flex-start}}
