:root{--bg:#f6f8fb;--panel:#ffffff;--panel-soft:#eef4ff;--ink:#162033;--muted:#667085;--line:#d9e1ec;--blue:#0a84ff;--teal:#38bdf8;--green:#22c55e;--red:#ef4444;--yellow:#f59e0b;--dark:#111827}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,Poppins,Arial,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.shell{width:min(1180px,calc(100% - 32px));margin:0 auto}.danger-button,.ghost-button,.primary-button,.secondary-button{min-height:44px;border:0;border-radius:8px;padding:0 18px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:850;box-shadow:0 10px 24px rgba(18,32,51,.08);transition:transform .16s ease,box-shadow .16s ease,background .16s ease,border-color .16s ease}.danger-button:disabled,.ghost-button:disabled,.primary-button:disabled,.secondary-button:disabled{cursor:wait;opacity:.72;transform:none}.danger-button:hover,.ghost-button:hover,.primary-button:hover,.secondary-button:hover{transform:translateY(-1px)}.primary-button{color:#fff;background:linear-gradient(135deg,#0a84ff,#2563eb 52%,#38bdf8);box-shadow:0 12px 28px rgba(10,132,255,.22)}.secondary-button{color:#075fd2;background:#eef6ff;border:1px solid #bfd7ff}.ghost-button{color:#334155;background:rgba(255,255,255,.82);border:1px solid rgba(23,32,51,.14);box-shadow:0 8px 18px rgba(23,32,51,.06)}.danger-button{color:#fff;background:var(--red);box-shadow:0 12px 28px rgba(239,68,68,.24)}.field{width:100%;border:1px solid var(--line);border-radius:8px;min-height:44px;padding:0 12px;background:#fff}textarea.field{min-height:112px;padding:12px;resize:vertical}.required-mark{display:inline-flex;align-items:center;margin-left:4px;color:#dc2626!important;font-weight:900;line-height:1}label:has(>.required-mark){display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;column-gap:0;row-gap:8px}label:has(>.required-mark)>.field,label:has(>.required-mark)>input,label:has(>.required-mark)>select,label:has(>.required-mark)>textarea{flex:0 0 100%;width:100%}