html{height:100%}*,*:before,*:after{box-sizing:border-box}:root{--primary: #0f4c75;--primary-dark: #0a3557;--primary-light: #e8f4fd;--accent: #3282b8;--bg: #e9ecef;--surface: #ffffff;--surface-alt: #f4f6f8;--text: #2c3e50;--text-muted: #6c757d;--border: #dfe6e9;--danger: #e74c3c;--success: #27ae60;--warning: #f1c40f;--radius: 8px;--radius-sm: 4px;--shadow: 0 2px 8px rgba(0,0,0,.08);--shadow-lg: 0 10px 20px rgba(0,0,0,.1)}body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.5;overflow-x:hidden;min-height:100vh}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-thumb{background:#b2bec3;border-radius:3px}.page-container{padding:24px;max-width:1100px;margin:0 auto;width:100%}.card{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow);padding:20px}.badge{display:inline-block;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:700}.badge.warning{background:#fef9c3;color:#92400e}.badge.success{background:#dcfce7;color:#166534}.badge.danger{background:#fee2e2;color:#991b1b}.badge.info{background:#dbeafe;color:#1e40af}.btn{display:inline-flex;align-items:center;gap:6px;padding:9px 18px;border:none;border-radius:var(--radius-sm);font-size:13px;font-weight:600;cursor:pointer;transition:opacity .15s,transform .1s}.btn:hover{opacity:.88}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.btn-primary{background:var(--primary);color:#fff}.btn.btn-accent{background:var(--accent);color:#fff}.btn.btn-success{background:var(--success);color:#fff}.btn.btn-danger{background:var(--danger);color:#fff}.btn.btn-outline{background:transparent;border:1px solid var(--primary);color:var(--primary)}.btn.btn-ghost{background:transparent;color:var(--text-muted)}.btn.btn-full{width:100%;justify-content:center}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius);border:1px solid var(--border)}table.ged-table{width:100%;min-width:560px;border-collapse:collapse;background:var(--surface);font-size:13px}table.ged-table th{background:#f8f9fa;padding:12px 14px;border-bottom:2px solid var(--border);text-align:left;color:var(--text);font-weight:600;white-space:nowrap}table.ged-table td{padding:12px 14px;border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle}table.ged-table tr:last-child td{border-bottom:none}table.ged-table tr:hover td{background:var(--surface-alt)}.form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.form-group label{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.form-group input,.form-group select,.form-group textarea{padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:14px;font-family:inherit;color:var(--text);background:var(--surface);transition:border-color .15s;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #3282b81f}.form-group textarea{resize:vertical;min-height:80px}.mt-1{margin-top:8px}.mt-2{margin-top:16px}.mt-3{margin-top:24px}.mb-2{margin-bottom:16px}.text-muted{color:var(--text-muted)}.text-center{text-align:center}.flex{display:flex}.flex-between{display:flex;justify-content:space-between;align-items:center}.gap-2{gap:16px}@media(max-width:640px){.page-container{padding:12px}.hide-mobile{display:none!important}.flex-between{flex-wrap:wrap;gap:8px}.card{padding:14px}}.ged-toast{position:fixed;top:20px;left:50%;transform:translate(-50%) translateY(-80px);padding:12px 20px;border-radius:8px;font-size:14px;font-weight:600;color:#fff;z-index:9999;opacity:0;transition:transform .3s ease,opacity .3s ease;white-space:nowrap;box-shadow:0 4px 12px #0003}.ged-toast.ged-toast-show{transform:translate(-50%) translateY(0);opacity:1}.ged-toast.ged-toast-success{background:#166534}.ged-toast.ged-toast-error{background:#991b1b}.ged-toast.ged-toast-info{background:#1e40af}
