:root{--brand:#2b7a90;--brand-dark:#1f5d6e;--accent:#6bbbd2;--text:#1f2933;--muted:#616e7c;--border:#d9e2ec;--header-bg:#f0f4f8;--page-bg:#f5f7fa;--warn-bg:#fff4e5;--warn-border:#f0a020;--alert-bg:#fdecea;--alert-border:#d64545;--ok-bg:#e8f5ee;--ok-border:#2f9e5b;--test-bg:#fff9c4;color:var(--text);background:var(--page-bg);font-family:Segoe UI,Arial,Helvetica,sans-serif;line-height:1.5}*{box-sizing:border-box}body{background:var(--page-bg);margin:0}.page{flex-direction:column;min-height:100vh;display:flex}.header{border-bottom:3px solid var(--accent);background:#fff}.header-inner,.main,.footer{width:100%;max-width:980px;margin:0 auto;padding-left:16px;padding-right:16px}.header-inner{justify-content:space-between;align-items:center;padding-top:12px;padding-bottom:10px;display:flex}.logo{max-width:45vw;height:auto;display:block}.header-title{color:var(--brand);font-weight:700}.main{flex:1;padding-top:24px;padding-bottom:32px}.footer{color:var(--muted);border-top:1px solid var(--border);padding-top:12px;padding-bottom:20px;font-size:12px}.card{border:1px solid var(--border);background:#fff;border-radius:6px;margin-bottom:16px;padding:20px}h1{margin:0 0 8px;font-size:22px}h2{margin:0 0 10px;font-size:17px}p{margin:0 0 12px}.muted{color:var(--muted);font-size:14px}.notice{border-left:4px solid var(--warn-border);background:var(--warn-bg);margin-bottom:16px;padding:10px 14px}.notice.alert{border-color:var(--alert-border);background:var(--alert-bg)}.notice.ok{border-color:var(--ok-border);background:var(--ok-bg)}.notice.test{background:var(--test-bg);color:#5c4400;border:2px dashed #b08900}.button{background:var(--brand);color:#fff;font:inherit;cursor:pointer;border:0;border-radius:4px;padding:11px 24px;font-weight:700;text-decoration:none;display:inline-block}.button:hover:not(:disabled){background:var(--brand-dark)}.button:disabled{opacity:.55;cursor:not-allowed}.link-button{font:inherit;color:var(--brand);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}textarea{width:100%;min-height:120px;font:inherit;border:1px solid var(--border);resize:vertical;border-radius:4px;padding:10px}textarea:focus,input:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}label.field{margin-bottom:6px;font-weight:700;display:block}.spinner{color:var(--muted);text-align:center;padding:32px 0}
