:root{--gc-bg: #ffffff;--gc-surface: #f6f8fa;--gc-border: #e3e8ee;--gc-border-strong: #cbd3dd;--gc-text: #1b2430;--gc-muted: #667085;--gc-accent: #1e8e4f;--gc-accent-hover: #187541;--gc-accent-soft: #e6f4ec;--gc-danger: #c62f3b;--gc-danger-hover: #a9252f;--gc-danger-soft: #fcecee;--gc-danger-border: #f1c4c8;--gc-warn: #8a5a00;--gc-warn-soft: #fff6e0;--gc-warn-border: #f3dca4;--gc-info-soft: #eef4fb;--gc-info-border: #cfdff2;--gc-radius: 8px;--gc-radius-sm: 6px;--gc-control-h: 40px;--gc-shadow: 0 1px 2px rgba(16, 24, 40, .06);--gc-focus: 0 0 0 3px rgba(30, 142, 79, .18);--gc-transition: .12s ease;color-scheme:light}*,*:before,*:after{box-sizing:border-box}html,body{margin:0}body{background:var(--gc-bg);color:var(--gc-text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.5;overflow-x:hidden}h1{font-size:1.6rem;font-weight:650;letter-spacing:-.01em;margin:0}.muted{color:var(--gc-muted)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.page-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.toolbar{display:flex;align-items:flex-end;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}.toolbar .field{min-width:200px}.toolbar .grow{flex:1 1 240px}.caption{color:var(--gc-muted);font-size:.85rem;margin:.5rem 0 0}.small-note{font-size:.85rem;margin:0}.state{padding:1.5rem;text-align:center;color:var(--gc-muted);border:1px dashed var(--gc-border-strong);border-radius:var(--gc-radius)}.state p{margin:0 0 .75rem}.field{display:flex;flex-direction:column;gap:.3rem;font-size:.9rem}.field>span,.field>label{font-weight:550}.field small{font-size:.8rem}.field-error{color:var(--gc-danger)}input[type=text],input[type=search],select,textarea{font:inherit;color:var(--gc-text);min-height:var(--gc-control-h);padding:.45rem .7rem;border:1px solid var(--gc-border-strong);border-radius:var(--gc-radius);background:var(--gc-bg);width:100%;transition:border-color var(--gc-transition),box-shadow var(--gc-transition)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--gc-accent);box-shadow:var(--gc-focus)}input:disabled,select:disabled{background:var(--gc-surface);color:var(--gc-muted)}.invalid{border-color:var(--gc-danger)!important}input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--gc-accent)}.btn{font:inherit;font-weight:550;min-height:var(--gc-control-h);padding:.4rem 1rem;border-radius:var(--gc-radius);border:1px solid var(--gc-border-strong);background:var(--gc-bg);color:var(--gc-text);cursor:pointer;white-space:nowrap;transition:background var(--gc-transition),border-color var(--gc-transition),box-shadow var(--gc-transition),color var(--gc-transition)}.btn:hover:not(:disabled){border-color:var(--gc-accent);box-shadow:var(--gc-shadow)}.btn:focus-visible{outline:none;box-shadow:var(--gc-focus)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--gc-accent);border-color:var(--gc-accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--gc-accent-hover);border-color:var(--gc-accent-hover)}.btn-danger{background:var(--gc-danger);border-color:var(--gc-danger);color:#fff}.btn-danger:hover:not(:disabled){background:var(--gc-danger-hover);border-color:var(--gc-danger-hover)}.btn-danger-outline{color:var(--gc-danger);border-color:var(--gc-danger-border)}.btn-danger-outline:hover:not(:disabled){background:var(--gc-danger-soft);border-color:var(--gc-danger)}.btn-sm{min-height:32px;padding:.15rem .75rem;font-size:.875rem}.alert{border-radius:var(--gc-radius);padding:.65rem .9rem;margin:0 0 1rem;border:1px solid}.alert-success{background:var(--gc-accent-soft);border-color:#bfe3cd;color:#145c34}.alert-error{background:var(--gc-danger-soft);border-color:var(--gc-danger-border);color:#8f1f29}.alert-warn{background:var(--gc-warn-soft);border-color:var(--gc-warn-border);color:var(--gc-warn)}.alert-info{background:var(--gc-info-soft);border-color:var(--gc-info-border);color:#1f4b7a}.table-wrap{overflow-x:auto;border:1px solid var(--gc-border);border-radius:var(--gc-radius);box-shadow:var(--gc-shadow);background:var(--gc-bg)}.table{width:100%;border-collapse:collapse;font-size:.9rem}.table th{text-align:left;background:var(--gc-surface);color:var(--gc-muted);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:.55rem .8rem;border-bottom:1px solid var(--gc-border);white-space:nowrap}.table td{padding:.5rem .8rem;border-bottom:1px solid var(--gc-border);vertical-align:middle;white-space:nowrap}.table tbody tr:last-child td{border-bottom:0}.table tbody tr:hover{background:var(--gc-surface)}.table .num{text-align:right;font-variant-numeric:tabular-nums}.row-actions{display:flex;gap:.4rem;justify-content:flex-end}.row-actions .locked{font-size:.82rem;cursor:help}.badge{display:inline-flex;align-items:center;gap:.35rem;padding:.1rem .6rem;border-radius:999px;font-size:.76rem;font-weight:600;line-height:1.5}.badge:before{content:"";width:.45rem;height:.45rem;border-radius:50%;background:currentColor}.badge-ok{background:var(--gc-accent-soft);color:var(--gc-accent)}.badge-pending{background:var(--gc-warn-soft);color:var(--gc-warn)}.badge-bad{background:var(--gc-danger-soft);color:var(--gc-danger)}.badge-off{background:var(--gc-surface);color:var(--gc-muted)}@media(max-width:760px){.toolbar .field,.toolbar .grow{min-width:100%}.toolbar .btn{width:100%}.table-wrap{overflow-x:visible;border:0;box-shadow:none;background:transparent}.table thead{display:none}.table,.table tbody,.table tr,.table td{display:block;width:100%}.table tr{border:1px solid var(--gc-border);border-radius:var(--gc-radius);margin-bottom:.75rem;background:var(--gc-bg);padding:.35rem 0}.table td{display:flex;justify-content:space-between;gap:1rem;border-bottom:0;padding:.3rem .9rem;white-space:normal;text-align:right}.table td[data-label]:before{content:attr(data-label);color:var(--gc-muted);font-size:.8rem;text-align:left}.table td.num{text-align:right}.row-actions{justify-content:stretch;padding-top:.5rem!important}.row-actions .btn{flex:1}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
