:root{--primary:#0f1d4d;--primary-deep:#081230;--secondary:#00abdd;--ink:#eef3ff;--ink-dim:#9eafd0;--line:#eef3ff1f;--radius:4px;color:var(--ink);background:var(--primary-deep);font-family:IBM Plex Sans,system-ui,sans-serif}*{box-sizing:border-box}body{background:linear-gradient(160deg,#0f1d4d,#081230 55%,#060d1c);min-height:100vh;margin:0}a{color:inherit;text-decoration:none}button,input{font:inherit}.app-shell{flex-direction:column;min-height:100vh;display:flex}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#081230d9;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1.25rem;display:flex}.brand{letter-spacing:-.02em;font-weight:700}.brand span{color:var(--secondary)}.nav{color:var(--ink-dim);flex-wrap:wrap;gap:1rem;font-size:.92rem;display:flex}.nav a.active,.nav a:hover{color:var(--secondary)}.main{flex:1;width:min(100% - 2rem,960px);margin:1.5rem auto 2.5rem}.card{border:1px solid var(--line);border-radius:var(--radius);background:#ffffff08;padding:1.25rem}.grid{gap:.85rem;display:grid}@media (width>=720px){.grid.cols-3{grid-template-columns:repeat(3,1fr)}}h1,h2,h3{letter-spacing:-.02em;margin:0 0 .6rem}.muted{color:var(--ink-dim)}.btn{border-radius:var(--radius);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;min-height:2.6rem;padding:.55rem 1rem;font-weight:600;display:inline-flex}.btn-primary{background:var(--secondary);color:#04101f}.btn-ghost{border-color:var(--line);color:var(--ink);background:0 0}.btn:disabled{opacity:.5;cursor:not-allowed}.login-wrap{place-items:center;min-height:100vh;padding:1.5rem;display:grid}.login-card{width:min(100%,380px)}.field{gap:.35rem;margin-bottom:.9rem;display:grid}.field label{color:var(--ink-dim);font-size:.85rem}.field input{border-radius:var(--radius);border:1px solid var(--line);min-height:2.6rem;color:var(--ink);background:#00000040;padding:.5rem .75rem}.error{color:#ff8f8f;margin-bottom:.75rem;font-size:.9rem}table{border-collapse:collapse;width:100%;font-size:.92rem}th,td{text-align:left;border-bottom:1px solid var(--line);padding:.65rem .4rem}th{color:var(--ink-dim);font-size:.8rem;font-weight:600}.badge{border:1px solid var(--line);border-radius:var(--radius);color:var(--secondary);padding:.15rem .45rem;font-size:.75rem;display:inline-block}.contract-body{white-space:pre-wrap;color:var(--ink-dim);border:1px solid var(--line);max-height:280px;margin:1rem 0;padding:1rem;font-size:.9rem;line-height:1.55;overflow:auto}.sign-row{gap:.75rem;display:grid}@media (width>=700px){.sign-row{grid-template-columns:1fr 1fr}}canvas{border:1px solid var(--line);border-radius:var(--radius);touch-action:none;cursor:crosshair;background:#ffffff0a;width:100%;height:140px}.stat-value{color:var(--secondary);font-size:1.4rem;font-weight:700}.pdf-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:.85rem;display:flex}.pdf-viewer{border:1px solid var(--line);background:#2b2f3a;min-height:70vh;padding:0;overflow:hidden}.pdf-scroll{height:min(78vh,920px);padding:1rem .75rem 1.5rem;overflow:auto}.pdf-meta{text-align:center;color:#b7c0d4;margin-bottom:.75rem;font-size:.8rem}.pdf-pages{flex-direction:column;align-items:center;gap:1rem;display:flex}.pdf-page{background:#fff;max-width:100%;height:auto;box-shadow:0 8px 28px #00000059}
