*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f3f4f6;--surface: #ffffff;--border: #e5e7eb;--text: #111827;--text-muted: #6b7280;--primary: #2563eb;--primary-hover: #1d4ed8;--warning-bg: #fefce8;--warning-border: #fbbf24;--warning-text: #92400e;--error-bg: #fef2f2;--error-border: #f87171;--error-text: #991b1b;--success-bg: #f0fdf4;--success-border: #4ade80;--success-text: #166534;--radius: 8px;--shadow: 0 1px 3px rgb(0 0 0 / .08)}body{font-family:system-ui,-apple-system,sans-serif;font-size:16px;line-height:1.5;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}.app-header{background:var(--primary);color:#fff;padding:1rem 1.25rem}.app-header h1{font-size:1.125rem;font-weight:600;letter-spacing:-.01em}.app-main{padding:1.25rem 1rem 3rem;max-width:640px;margin:0 auto}.protocol-form{display:flex;flex-direction:column;gap:1rem}.form-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem;display:flex;flex-direction:column;gap:.875rem}.section-title{font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);padding-bottom:.5rem;border-bottom:1px solid var(--border)}.field{display:flex;flex-direction:column;gap:.25rem;flex:1}.field-row{display:flex;gap:.75rem}.field-label{font-size:.875rem;font-weight:500;color:var(--text)}.required{color:var(--primary);margin-left:2px}.field-hint{font-size:.75rem;color:var(--text-muted)}input[type=text],input[type=number],input[type=date],select{width:100%;padding:.5rem .75rem;border:1px solid var(--border);border-radius:6px;font-size:.9375rem;color:var(--text);background:var(--surface);-moz-appearance:none;appearance:none;-webkit-appearance:none;transition:border-color .15s;min-height:44px}select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%236b7280' d='M6 8L0 0h12z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;padding-right:2rem}input:focus,select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1f}.range-hint{font-size:.8125rem;color:var(--text-muted);background:var(--bg);border-radius:6px;padding:.5rem .75rem}.tripwire-warning{font-size:.875rem;color:var(--warning-text);background:var(--warning-bg);border:1px solid var(--warning-border);border-radius:6px;padding:.625rem .875rem}.api-error{font-size:.875rem;color:var(--error-text);background:var(--error-bg);border:1px solid var(--error-border);border-radius:6px;padding:.75rem 1rem}.api-error pre{margin-top:.5rem;font-size:.75rem;white-space:pre-wrap;word-break:break-all}.btn-primary{width:100%;padding:.75rem 1rem;background:var(--primary);color:#fff;border:none;border-radius:var(--radius);font-size:1rem;font-weight:600;cursor:pointer;transition:background .15s;min-height:48px}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{padding:.625rem 1.25rem;background:transparent;color:var(--primary);border:1px solid var(--primary);border-radius:var(--radius);font-size:.9375rem;font-weight:500;cursor:pointer;transition:background .15s}.btn-secondary:hover{background:#2563eb0f}.success-panel{background:var(--surface);border:1px solid var(--success-border);border-radius:var(--radius);padding:2rem 1.5rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:1rem;box-shadow:var(--shadow)}.success-icon{width:48px;height:48px;border-radius:50%;background:var(--success-bg);color:var(--success-text);font-size:1.5rem;display:flex;align-items:center;justify-content:center;border:1px solid var(--success-border)}.success-panel h2{font-size:1.25rem;font-weight:600;color:var(--success-text)}.id-list{width:100%;text-align:left;display:grid;grid-template-columns:auto 1fr;gap:.375rem 1rem;font-size:.875rem}.id-list dt{color:var(--text-muted);font-weight:500;white-space:nowrap}.id-list code{font-family:ui-monospace,monospace;font-size:.8125rem;word-break:break-all}@media(min-width:480px){.app-main{padding:1.5rem 1.5rem 4rem}.form-section{padding:1.5rem}}
