:root{--ink:#102a43;--muted:#627d98;--paper:#f5f7fa;--white:#fff;--line:#d9e2ec;--blue:#2867d8;--blue-dark:#174ea6;--danger:#b42318;--shadow:0 18px 45px rgba(16,42,67,.1)}
html,body{font-family:Inter,Pretendard,"Noto Sans KR",system-ui,sans-serif;background:var(--paper);color:var(--ink);margin:0}a{color:var(--blue);text-decoration:none}h1,h2,p{margin-top:0}button,input,select{font:inherit}button,.button-link{border:0;border-radius:.65rem;padding:.72rem 1.1rem;font-weight:700;cursor:pointer}.primary{background:var(--blue);color:#fff}.primary:hover{background:var(--blue-dark)}.secondary{background:#eaf0f8;color:var(--ink)}.danger{background:#fee4e2;color:var(--danger)}button:disabled{opacity:.5;cursor:not-allowed}input,select{box-sizing:border-box;width:100%;border:1px solid var(--line);border-radius:.55rem;padding:.72rem;background:#fff}label{display:grid;gap:.4rem;font-weight:650;color:#334e68}.eyebrow{font-size:.74rem;letter-spacing:.18em;font-weight:800;color:var(--blue)}.muted,small{color:var(--muted)}.error{color:var(--danger)}.status{padding:.85rem 1rem;background:#e9f2ff;border-left:3px solid var(--blue);border-radius:.4rem}.button-link{display:inline-block}.landing{min-height:100vh;display:grid;place-items:center;padding:2rem;background:radial-gradient(circle at 80% 15%,#dce9ff,transparent 30%),linear-gradient(140deg,#fff,#eef3f9)}.landing section{max-width:850px}.landing h1{font-size:clamp(2.4rem,6vw,5.5rem);line-height:1.05;letter-spacing:-.055em}.landing p:not(.eyebrow){font-size:1.1rem;max-width:620px;color:var(--muted);line-height:1.8}.auth-shell{min-height:80vh;display:grid;place-items:center;padding:2rem}.auth-card{width:min(460px,100%);background:#fff;border:1px solid var(--line);border-radius:1.2rem;padding:2rem;box-shadow:var(--shadow)}.auth-card form,.signature-panel{display:grid;gap:.85rem}.admin-page{max-width:1180px;margin:0 auto;padding:1.5rem 0 4rem}.page-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem}.panel{background:#fff;border:1px solid var(--line);border-radius:1rem;padding:1.35rem;margin-bottom:1rem;box-shadow:0 5px 20px rgba(16,42,67,.04)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-bottom:1rem}.contract-list{display:grid}.contract-row{display:flex;align-items:center;justify-content:space-between;padding:1rem .3rem;border-bottom:1px solid var(--line);color:var(--ink)}.contract-row span:first-child{display:grid;gap:.25rem}.status-pill{font-size:.78rem;background:#edf2f7;border-radius:999px;padding:.35rem .65rem;white-space:nowrap}.contract-document{width:100%;height:72vh;border:1px solid var(--line);border-radius:.6rem;background:#eef2f6}.signature-pad{width:100%;height:180px;border:1px dashed #829ab1;border-radius:.5rem;background:#fff;touch-action:none}.consent{display:flex;grid-template-columns:auto 1fr;align-items:start}.consent input{width:auto;margin-top:.25rem}.actions{display:flex;gap:.7rem;justify-content:flex-end;margin-top:1rem}.public-shell{max-width:1050px;margin:0 auto;padding:1.5rem}.public-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.public-header span{font-weight:800;letter-spacing:.14em}.pdf-stage{position:relative;display:grid;place-items:start center;overflow:auto;background:#d9e2ec;padding:1rem;min-height:600px}.field-overlay{position:absolute;top:1rem;left:50%;transform:translateX(-50%);pointer-events:none}.pdf-field{position:absolute;pointer-events:auto;border:2px solid #2867d8;background:rgba(40,103,216,.12);color:#102a43;padding:0;font-size:.72rem;cursor:move}.pdf-field.selected{border-color:#d92d20;background:rgba(217,45,32,.12)}.editor-toolbar{display:grid;grid-template-columns:auto auto auto 1fr auto;gap:.5rem;align-items:center;margin-bottom:.8rem}.danger-zone{display:flex;justify-content:flex-end;padding:1rem 0}.totp-qr{display:block;border:8px solid white;box-shadow:0 2px 12px rgba(0,0,0,.12)}#blazor-error-ui{color-scheme:light;background:#fff3cd;bottom:0;box-shadow:0 -1px 2px rgba(0,0,0,.2);box-sizing:border-box;display:none;left:0;padding:.6rem 1.25rem;position:fixed;width:100%;z-index:1000}.validation-message,.validation-summary-errors{color:var(--danger)}
@media(max-width:760px){.form-grid{grid-template-columns:1fr}.editor-toolbar{grid-template-columns:1fr 1fr}.public-shell{padding:.6rem}.contract-document{height:58vh}.landing h1{font-size:2.8rem}}
