html,body,#root{min-height:100%}body{margin:0;font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;background:var(--bg, #f3f4f6);color:var(--text, #111827)}#root{min-height:100vh;background:inherit;color:inherit}*{box-sizing:border-box}.app{max-width:1100px;margin:0 auto;padding:1.5rem}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem}.topbar-actions{display:flex;align-items:center;gap:.75rem}.nav{display:flex;gap:.75rem;margin:1rem 0}.nav a{text-decoration:none;padding:.25rem .1rem;border:none;border-radius:0;border-bottom:2px solid transparent;font-weight:500}.page{display:flex;flex-direction:column;gap:1rem}.login-shell{min-height:85vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:linear-gradient(180deg,#f8fafc 0%,#eef2ff 100%)}.login-card{width:min(560px,100%);background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:2rem;box-shadow:0 16px 40px #0f172a14;text-align:center}.login-subtitle{margin:.6rem 0 .4rem;color:#374151}.login-note{margin:.4rem 0 1.2rem;color:#6b7280}.google-btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;text-decoration:none;color:var(--text);background:var(--input-bg);border:1px solid var(--input-border);border-radius:10px;padding:.65rem 1rem;font-weight:600}.google-btn:hover{filter:brightness(1.05)}.google-badge{width:1.5rem;height:1.5rem;border:1px solid var(--input-border);border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700}.panel{background:transparent;border:none;border-radius:0;padding:.2rem 0}.list{display:flex;flex-direction:column;gap:1rem}label{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.75rem}input:not([type=checkbox]):not([type=radio]),select,button{padding:.5rem;border:1px solid #bbb;border-radius:6px}button,select,input[type=checkbox],input[type=radio],a,[role=button]{cursor:pointer}button:hover:not(:disabled),select:hover:not(:disabled),a:hover{filter:brightness(1.03)}button:disabled,select:disabled,input[type=checkbox]:disabled,input[type=radio]:disabled{cursor:not-allowed}input[type=checkbox],input[type=radio]{padding:0;border:none;width:1rem;height:1rem}.checkbox-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.5rem}.checkbox-grid label{display:flex;flex-direction:row;align-items:center;gap:.5rem;margin:0}.error{color:#b91c1c;font-weight:600}.success{color:#047857;font-weight:600}.button-link{display:inline-block;width:fit-content;text-decoration:none;background:#2563eb;color:#fff;padding:.6rem .95rem;border-radius:6px}.table{width:100%;border-collapse:collapse;margin-top:.75rem;min-width:760px}.table th,.table td{border:1px solid #e5e7eb;padding:.7rem .65rem;text-align:left;vertical-align:middle}.table th{background:#f3f4f6;font-size:.9rem;color:#374151}.table tbody tr:nth-child(2n){background:#fcfcfd}.table-wrap{overflow-x:auto;border:none;border-radius:0}.status-badge{display:inline-block;padding:.2rem .5rem;border-radius:999px;font-size:.8rem;font-weight:600;border:1px solid transparent}.status-active,.status-granted{color:#065f46;background:#ecfdf5;border-color:#a7f3d0}.status-inactive,.status-error{color:#991b1b;background:#fef2f2;border-color:#fecaca}.status-pending{color:#92400e;background:#fffbeb;border-color:#fde68a}.hint{margin:-.2rem 0 .65rem;font-size:.85rem;color:#6b7280}.table-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem;margin-bottom:.55rem}.table-toolbar input[type=text],.table-toolbar input:not([type]){min-width:260px}.inline-option{margin:0;display:flex;flex-direction:row;align-items:center;gap:.4rem;white-space:nowrap}.table-picker{border:1px solid #e5e7eb;border-radius:10px;max-height:320px;overflow-y:auto;padding:.45rem;display:flex;flex-direction:column;gap:.25rem}.table-picker-item{margin:0;padding:.35rem .45rem;border-radius:6px;display:flex;flex-direction:row;align-items:center;gap:.5rem;cursor:pointer}.table-picker-item:hover{background:#f9fafb}.table-picker-item:focus-within{background:#eff6ff}:root.dark .table-picker-item:hover{background:#1f2937}:root.dark .table-picker-item:focus-within{background:#1e3a8a}.action-row{display:flex;gap:.4rem}.danger-btn{color:#b91c1c;border-color:#fca5a5;background:#fff5f5}.preview-cell{display:flex;align-items:center;gap:.5rem}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(2,6,23,.55);display:flex;align-items:center;justify-content:center;padding:1rem;z-index:1000}.modal-card{width:min(780px,100%);max-height:80vh;overflow:auto;background:var(--input-bg);border:1px solid var(--input-border);border-radius:10px;padding:1rem}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:.7rem}.modal-head h3{margin:0}.modal-table-list{display:flex;flex-direction:column;gap:.7rem}.modal-table-group h4{margin:0 0 .2rem}.modal-table-group p{margin:0;color:var(--muted)}:root{--bg: #f3f4f6;--text: #111827;--panel-bg: transparent;--panel-border: transparent;--muted: #6b7280;--table-border: #e5e7eb;--table-head-bg: transparent;--table-head-text: #374151;--table-row-alt: transparent;--nav-border: #999999;--nav-active-bg: #1f2937;--nav-active-text: #ffffff;--input-bg: #ffffff;--input-border: #bbbbbb}:root.dark{--bg: #0b1220;--text: #e5e7eb;--panel-bg: transparent;--panel-border: transparent;--muted: #9ca3af;--table-border: #334155;--table-head-bg: transparent;--table-head-text: #e5e7eb;--table-row-alt: transparent;--nav-border: #475569;--nav-active-bg: #334155;--nav-active-text: #ffffff;--input-bg: #0f172a;--input-border: #475569}body{background:var(--bg);color:var(--text)}h1,h2,h3,h4,p,span,th,td,label{color:inherit}.panel{background:transparent;border:none;border-color:transparent;box-shadow:none}.nav a{color:var(--text)}.nav a.active{background:transparent;color:var(--text);border-bottom-color:#3b82f6}.table th,.table td{border-color:var(--table-border)}.table th{background:var(--table-head-bg);color:var(--table-head-text)}.table tbody tr:nth-child(2n){background:var(--table-row-alt)}.table-wrap,.table-picker{border:none;border-color:transparent;border-radius:0;box-shadow:none}.hint,.login-note,.login-subtitle{color:var(--muted)}input:not([type=checkbox]):not([type=radio]),select,button{background:var(--input-bg);border-color:var(--input-border);color:var(--text)}.login-shell{background:linear-gradient(180deg,#1e293b 0%,#0b1220 100%)}:root:not(.dark) .login-shell{background:linear-gradient(180deg,#f8fafc 0%,#eef2ff 100%)}.login-card{background:var(--panel-bg);border-color:var(--panel-border)}
