:root{color-scheme:light;--bg: #f4f6f8;--card: #ffffff;--text: #1a2330;--muted: #5c6b7a;--line: #d7dee7;--accent: #0b6e4f;--accent-text: #ffffff;--danger: #a11b2b;--warn: #8a5a00;--ok: #0b6e4f;font-family:Segoe UI,system-ui,sans-serif;line-height:1.45;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(900px 400px at 10% -10%,#d9ebe3 0%,transparent 55%),radial-gradient(700px 360px at 100% 0%,#e7eef8 0%,transparent 50%),var(--bg)}.shell{max-width:1280px;margin:0 auto;padding:28px 18px 48px;display:grid;gap:16px}.shell--login{min-height:100vh;place-items:center}.eyebrow{margin:0;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-weight:700}h1{margin:4px 0 0;font-size:1.6rem}h2{margin:0 0 6px;font-size:1.05rem}.muted{color:var(--muted);font-size:.92rem}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 18px;box-shadow:0 8px 24px #1a23300d}.login{width:min(400px,100%);display:grid;gap:12px}.login label,.form label{display:grid;gap:6px;font-size:.85rem;color:var(--muted)}input{padding:9px 10px;border-radius:8px;border:1px solid var(--line);font:inherit;color:var(--text);background:#fff}.form{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;margin-top:12px}.form .full{grid-column:1 / -1}.btn,button[type=submit]{border:0;border-radius:8px;padding:9px 12px;background:var(--accent);color:var(--accent-text);font:inherit;font-weight:650;cursor:pointer}.btn:disabled,button:disabled{opacity:.6;cursor:not-allowed}.btn.ghost{background:transparent;color:var(--text);border:1px solid var(--line)}.btn.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 35%,var(--line))}.top{display:flex;justify-content:space-between;gap:12px;align-items:end;flex-wrap:wrap}.top__actions{display:flex;gap:8px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.flash{margin:0;padding:10px 12px;border-radius:8px;font-weight:600}.flash--ok{background:#e6f5ee;color:var(--ok)}.flash--err{background:#fdecee;color:var(--danger)}.code-once{border-color:color-mix(in srgb,var(--accent) 40%,var(--line));background:linear-gradient(180deg,#f2faf6,#fff)}.code-once__value{display:block;margin:10px 0;padding:14px;font-size:1.25rem;letter-spacing:.06em;text-align:center;background:#0f1a14;color:#e8fff4;border-radius:10px;-webkit-user-select:all;user-select:all}.warn{color:var(--warn);font-size:.9rem;font-weight:600}.table-wrap{overflow:auto;margin-top:10px}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{text-align:left;padding:8px 6px;border-bottom:1px solid var(--line);vertical-align:middle}th{color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}tr.row--latest td{background:color-mix(in srgb,var(--accent) 10%,#fff)}.mono,code{font-family:ui-monospace,Consolas,monospace;font-size:.88em}.pill{display:inline-block;padding:2px 8px;border-radius:999px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;border:1px solid var(--line)}.pill--active{background:#e6f5ee;color:var(--ok)}.pill--expired{background:#fff4df;color:var(--warn)}.pill--revoked{background:#fdecee;color:var(--danger)}.pill--none{background:#eef2f6;color:var(--muted)}.issued-banner{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.issued-meta{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px 14px;margin:4px 0 0}.issued-meta dt{margin:0;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.issued-meta dd{margin:2px 0 0;font-size:.88rem;word-break:break-all}.company-cell{display:flex;flex-direction:column;gap:2px;min-width:10rem}.company-cell__meta{font-size:.75rem;color:var(--muted);word-break:break-all}.db-name{font-size:.85rem;word-break:break-all}.code-cell{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.code-cell__value{-webkit-user-select:all;user-select:all;letter-spacing:.04em}td .btn.ghost{margin-left:8px;padding:4px 8px;font-size:.8rem}.renew-cell{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.renew-cell input[type=date]{max-width:11.5rem}.renew-cell .btn{padding:6px 10px;font-size:.8rem}.ctx-menu{position:fixed;z-index:2000;width:240px;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 42px #1a233029;padding:8px;display:grid;gap:6px}.ctx-menu__item{width:100%;text-align:left;border:0;border-radius:10px;padding:9px 10px;background:transparent;color:var(--text);font:inherit;cursor:pointer}.ctx-menu__item:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 12%,transparent)}.ctx-menu__item--danger{color:var(--danger)}.ctx-menu__item--danger:hover:not(:disabled){background:color-mix(in srgb,var(--danger) 12%,transparent)}.ctx-menu__item:disabled{opacity:.55;cursor:not-allowed}.modal-overlay{position:fixed;inset:0;background:#00000061;z-index:2200;display:grid;place-items:center;padding:18px}.modal{width:min(920px,100%);background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 42px #1a233038;overflow:hidden}.modal--wide{width:min(640px,100%);max-height:min(85vh,800px);overflow:auto}.info-grid{display:grid;gap:10px;margin:0}.info-grid__row{display:grid;gap:4px;padding-bottom:10px;border-bottom:1px solid var(--line)}.info-grid__row:last-child{border-bottom:none;padding-bottom:0}.info-grid dt{margin:0;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.info-grid dd{margin:0;display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap}.info-grid__value{flex:1;min-width:0;word-break:break-all;font-size:.9rem}.btn.linkish{margin-left:0;padding:2px 6px;font-size:.8rem;color:var(--accent);line-height:1.2}.company-name-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.company-name-row strong{line-height:1.2}.modal__header{display:flex;justify-content:space-between;align-items:start;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line)}.modal__title{margin:0;font-size:1.05rem}.modal__subtitle{margin:6px 0 0;color:var(--muted);font-size:.9rem}.modal__body{padding:14px 16px 18px;display:grid;gap:12px}.modal__table-wrap{max-height:380px;overflow:auto}@media(max-width:640px){.form{grid-template-columns:1fr}}.tab-nav{display:flex;gap:6px}.tab-nav .btn.ghost.is-on{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.chat-layout{display:grid;grid-template-columns:minmax(260px,340px) 1fr;gap:16px;align-items:start}.chat-list h2{display:flex;align-items:center;gap:8px}.chat-badge{font-size:.75rem;font-weight:700;padding:2px 8px;border-radius:999px;background:#fde68a;color:#78350f}.chat-convos{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:8px}.chat-convo{width:100%;text-align:left;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;display:grid;gap:4px}.chat-convo.is-on{border-color:var(--accent);background:#f3faf6}.chat-convo__name{font-weight:700;display:flex;align-items:center;gap:8px}.chat-dot{font-size:.7rem;font-weight:700;min-width:20px;padding:2px 6px;border-radius:999px;background:var(--danger);color:#fff}.chat-convo__preview{font-size:.85rem;color:var(--muted)}.chat-convo__time{font-size:.75rem;color:var(--muted)}.chat-messages{margin:12px 0;max-height:420px;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding:8px;border:1px solid var(--line);border-radius:10px;background:#fafbfc}.chat-msg{max-width:92%;padding:8px 10px;border-radius:10px;font-size:.92rem;line-height:1.45}.chat-msg--visitor{align-self:flex-start;background:#fff;border:1px solid var(--line)}.chat-msg--admin{align-self:flex-end;background:#e8f5ef;border:1px solid #b8dcc8}.chat-msg small{display:block;margin-top:4px;font-size:.72rem;color:var(--muted)}.chat-reply{display:grid;gap:8px}.chat-reply textarea{width:100%;padding:10px;border:1px solid var(--line);border-radius:8px;font:inherit;resize:vertical}@media(max-width:900px){.chat-layout{grid-template-columns:1fr}}.product-tabs{display:flex;gap:8px;margin:0 0 14px;flex-wrap:wrap}.product-tabs__active{background:var(--accent)!important;color:var(--accent-text)!important;border-color:var(--accent)!important}
