:root{color:#1e2528;background:#f4f6f3;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;line-height:1.5;text-rendering:optimizeLegibility;--bg: #f4f6f3;--surface: #ffffff;--surface-soft: #f8faf8;--text: #1e2528;--muted: #687274;--border: #dce4de;--border-strong: #bdcabe;--primary: #0f766e;--primary-strong: #0a5f59;--primary-soft: #e4f4ef;--danger: #b42318;--danger-soft: #fff1ef;--warning: #9a6700;--warning-soft: #fff7df;--success: #167245;--success-soft: #e8f6ee;--shadow: 0 22px 60px rgba(34, 47, 40, .1);--radius: 8px}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(135deg,rgba(15,118,110,.08),transparent 34%),linear-gradient(315deg,rgba(154,103,0,.09),transparent 28%),var(--bg)}button,input,select{font:inherit}button{border:0}code{border:1px solid #cfdbd5;border-radius:6px;background:#f3f7f4;color:#244b48;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.85rem;padding:.28rem .42rem;word-break:break-all}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.auth-screen{align-items:center;display:flex;justify-content:center;min-height:100vh;padding:1.5rem}.auth-card{width:min(100%,440px);border:1px solid rgba(220,228,222,.9);border-radius:var(--radius);background:#ffffffeb;box-shadow:var(--shadow);padding:2rem}.auth-card--compact{align-items:center;display:flex;flex-direction:column;gap:1rem;text-align:center}.brand-row{align-items:center;display:flex;gap:.9rem}.brand-row--compact h1{font-size:1.4rem}.brand-title{color:var(--text);display:block;font-size:1.05rem;font-weight:900;line-height:1.12}.brand-mark{align-items:center;background:#123331;border-radius:var(--radius);color:#d7fff4;display:inline-flex;height:3rem;justify-content:center;width:3rem}.eyebrow{color:var(--primary);font-size:.75rem;font-weight:800;letter-spacing:0;margin:0 0 .1rem;text-transform:uppercase}h1,h2{color:var(--text);line-height:1.12;margin:0}h1{font-size:clamp(1.65rem,4vw,2.35rem);letter-spacing:0}h2{font-size:1.1rem}p{margin:0}.muted,.auth-copy,.panel-heading p,.empty-state p,.field-helper{color:var(--muted)}.auth-copy{margin:1.4rem 0}.auth-note{align-items:center;border-top:1px solid var(--border);color:var(--muted);display:flex;gap:.55rem;font-size:.9rem;margin-top:1.35rem;padding-top:1.15rem}.form-stack{display:grid;gap:1rem}.field{display:grid;gap:.4rem}.field-label{color:#304044;font-size:.88rem;font-weight:700}.field-helper{font-size:.82rem}.input{background:#fff;border:1px solid var(--border-strong);border-radius:7px;color:var(--text);min-height:2.85rem;outline:none;padding:.75rem .85rem;transition:border-color .16s ease,box-shadow .16s ease;width:100%}.input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #0f766e26}.button{align-items:center;border-radius:7px;cursor:pointer;display:inline-flex;font-size:.92rem;font-weight:800;gap:.48rem;justify-content:center;min-height:2.65rem;padding:.65rem .9rem;transition:background .16s ease,color .16s ease,opacity .16s ease,transform .16s ease;white-space:nowrap}.button:not(:disabled):hover{transform:translateY(-1px)}.button:disabled{cursor:not-allowed;opacity:.6}.button--primary{background:var(--primary);color:#fff}.button--primary:not(:disabled):hover{background:var(--primary-strong)}.button--secondary{background:#edf3ef;color:#234541}.button--secondary:not(:disabled):hover{background:#dfe9e3}.button--danger{background:var(--danger-soft);color:var(--danger)}.button--danger:not(:disabled):hover{background:#ffe0dc}.button--ghost{background:transparent;color:#3a4a4c}.button--ghost:not(:disabled):hover{background:#edf3ef}.button-spinner,.spinner-dot{animation:spin .85s linear infinite;border:2px solid currentColor;border-right-color:transparent;border-radius:999px;display:inline-block;height:1rem;width:1rem}@keyframes spin{to{transform:rotate(360deg)}}.alert{border:1px solid var(--border);border-radius:7px;display:grid;gap:.2rem;font-size:.9rem;margin:.9rem 0;padding:.85rem .95rem}.alert--info{background:#eef7f6;border-color:#c8e4e0;color:#244c49}.alert--success{background:var(--success-soft);border-color:#bfe4cf;color:var(--success)}.alert--warning{background:var(--warning-soft);border-color:#f2dc9c;color:#6d4d08}.alert--danger{background:var(--danger-soft);border-color:#f6c7c1;color:var(--danger)}.app-shell{margin:0 auto;max-width:1240px;min-height:100vh;padding:1.25rem}.topbar,.panel,.summary-card{background:#ffffffe6;border:1px solid rgba(220,228,222,.95);border-radius:var(--radius);box-shadow:0 12px 34px #222f280f}.topbar{align-items:center;display:flex;justify-content:space-between;gap:1rem;padding:1rem}.topbar-main{align-items:center;display:flex;flex-wrap:wrap;gap:1rem}.admin-nav{align-items:center;display:flex;flex-wrap:wrap;gap:.35rem}.admin-nav-link{align-items:center;border-radius:7px;color:#3a4a4c;display:inline-flex;font-size:.9rem;font-weight:850;gap:.45rem;min-height:2.5rem;padding:.55rem .75rem;text-decoration:none;transition:background .16s ease,color .16s ease}.admin-nav-link:hover{background:#edf3ef}.admin-nav-link--active{background:var(--primary-soft);color:var(--primary-strong)}.topbar-actions{align-items:center;display:flex;gap:.75rem}.user-chip{border-right:1px solid var(--border);display:grid;gap:.1rem;padding-right:.75rem;text-align:right}.user-chip span{font-weight:800}.user-chip small{color:var(--muted);text-transform:capitalize}.page-heading{display:grid;gap:.25rem;margin:1.25rem 0 1rem}.summary-grid{display:grid;gap:.8rem;grid-template-columns:repeat(3,minmax(0,1fr));margin:1rem 0}.summary-card{display:grid;gap:.4rem;padding:1rem}.summary-card span{color:var(--muted);font-size:.84rem;font-weight:700}.summary-card strong{font-size:1.55rem}.summary-card--active{border-color:#bfe4cf}.summary-card--notice{border-color:#ead89e}.content-grid{align-items:start;display:grid;gap:1rem;grid-template-columns:minmax(290px,360px) minmax(0,1fr)}.panel{padding:1.2rem}.panel-heading{display:grid;gap:.35rem}.create-panel{position:sticky;top:1rem}.panel-toolbar{align-items:start;display:flex;justify-content:space-between;gap:1rem}.table-shell{margin-top:1rem;overflow-x:auto}.table-shell--wide table{min-width:1480px}table{border-collapse:collapse;min-width:860px;width:100%}th,td{border-bottom:1px solid var(--border);padding:.85rem .7rem;text-align:left;vertical-align:middle}th{color:#536064;font-size:.76rem;font-weight:900;letter-spacing:0;text-transform:uppercase}td{color:#344346;font-size:.92rem}tr:last-child td{border-bottom:0}.key-name,.entity-cell{display:grid;gap:.15rem}.key-name span,.entity-cell span{color:var(--muted);font-size:.78rem}.table-action{text-align:right}.table-action-group{display:inline-flex;flex-wrap:wrap;gap:.45rem;justify-content:flex-end}.status-badge{border-radius:999px;display:inline-flex;font-size:.78rem;font-weight:900;padding:.28rem .58rem}.status-badge--active{background:var(--success-soft);color:var(--success)}.status-badge--revoked{background:#edf0ef;color:#64706f}.payment-status--created{background:#eef7f6;color:#244c49}.payment-status--pending{background:var(--warning-soft);color:var(--warning)}.payment-status--confirmed,.payment-status--sent{background:var(--success-soft);color:var(--success)}.payment-status--failed,.payment-status--cancelled{background:var(--danger-soft);color:var(--danger)}.filter-panel,.invoices-panel{margin-top:1rem}.filter-grid{display:grid;gap:.85rem;grid-template-columns:minmax(220px,1.4fr) repeat(5,minmax(145px,1fr));margin-top:1rem}.filter-actions{align-items:end;display:flex;gap:.55rem}.pagination-bar{align-items:center;border-top:1px solid var(--border);color:var(--muted);display:flex;gap:1rem;justify-content:space-between;margin-top:1rem;padding-top:1rem}.pagination-actions{align-items:center;display:flex;gap:.65rem}.pagination-actions strong{color:var(--text);font-size:.9rem;white-space:nowrap}.empty-state{align-items:center;border:1px dashed var(--border-strong);border-radius:var(--radius);color:var(--muted);display:grid;justify-items:center;margin-top:1rem;padding:3rem 1rem;text-align:center}.empty-state svg{color:var(--primary);margin-bottom:.6rem}.page-spinner{align-items:center;color:var(--muted);display:flex;gap:.65rem;justify-content:center;min-height:14rem}.modal-backdrop{align-items:center;background:#141f1e6b;display:flex;top:0;right:0;bottom:0;left:0;justify-content:center;padding:1rem;position:fixed;z-index:20}.modal{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);max-width:620px;width:min(100%,620px)}.modal-header,.modal-footer{align-items:center;display:flex;gap:.75rem;justify-content:space-between;padding:1rem 1.2rem}.modal-header{border-bottom:1px solid var(--border)}.modal-footer{border-top:1px solid var(--border);justify-content:flex-end}.modal-body{padding:.3rem 1.2rem 1.1rem}.icon-button{min-height:2.2rem;padding:.4rem;width:2.2rem}.secret-box{display:grid;gap:.5rem;margin-top:1rem}.secret-box span{color:var(--muted);font-size:.86rem;font-weight:800}.secret-box code{display:block;font-size:.95rem;padding:.9rem}.floating-warning{align-items:center;background:#123331;border-radius:999px;bottom:1rem;box-shadow:0 10px 26px #12333133;color:#d7fff4;display:inline-flex;font-size:.85rem;font-weight:800;gap:.4rem;padding:.62rem .85rem;position:fixed;right:1rem}@media(max-width:900px){.content-grid{grid-template-columns:1fr}.create-panel{position:static}.summary-grid{grid-template-columns:1fr}.filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-actions{grid-column:1 / -1}.pagination-bar{align-items:stretch;flex-direction:column}}@media(max-width:640px){.app-shell{padding:.75rem}.topbar,.topbar-main,.topbar-actions,.panel-toolbar{align-items:stretch;flex-direction:column}.admin-nav{align-items:stretch;display:grid;grid-template-columns:1fr}.user-chip{border-right:0;border-top:1px solid var(--border);padding:.75rem 0 0;text-align:left}.auth-card{padding:1.35rem}.brand-row{align-items:flex-start}.modal-footer{align-items:stretch;flex-direction:column-reverse}.filter-grid{grid-template-columns:1fr}.filter-actions,.pagination-actions{align-items:stretch;flex-direction:column}.floating-warning{display:none}}
