:root{font-family:Space Grotesk,Avenir Next,Segoe UI,sans-serif;color:#12303d;background:#eef4f7;--text: #12303d;--muted: #5f7883;--bg: #eef4f7;--surface: #ffffff;--surface-soft: #f6fafc;--line: #d5e3e9;--primary: #0e7490;--primary-strong: #0b6379;--danger: #b9382e;--success: #1d7f4f;--shadow: 0 22px 38px -24px rgba(8, 33, 41, .45)}html{background:#eef4f7}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 20% 20%,rgba(14,116,144,.2),transparent 52%),radial-gradient(circle at 80% 0%,rgba(255,174,113,.25),transparent 45%),linear-gradient(175deg,#f8fbfc,#eef4f7 42%,#e6eff4);color:var(--text)}#root{min-height:100vh}a{color:#0b6379;font-weight:600}a:hover{color:#094d5f}h1,h2,p{margin:0}main{width:min(1100px,calc(100vw - 2.5rem));margin:0 auto 2rem;padding-top:1.4rem}.auth-shell{width:min(880px,calc(100vw - 2.5rem))}.card{background:var(--surface);border:1px solid rgba(213,227,233,.9);border-radius:18px;box-shadow:var(--shadow);padding:1.2rem}.hero-card{margin-bottom:1.2rem}.top-panel{padding:1.4rem;background:linear-gradient(145deg,#fff,#f3f9fc)}.hero-title{font-size:clamp(1.5rem,2vw + .8rem,2.2rem);margin-bottom:.5rem}.hero-subtitle{color:var(--muted)}.hero-details{margin-top:.6rem;color:#31525e;line-height:1.55}.hero-link{margin-top:.6rem;color:#31525e}.mode-switch{display:flex;gap:.6rem;margin-top:1rem}.mode-switch button{flex:1}.form-grid{display:grid;gap:.85rem}.spaced-top{margin-top:1rem}.narrow{max-width:420px}label{display:grid;gap:.35rem;color:var(--muted);font-size:.95rem}input{width:100%;border:1px solid var(--line);border-radius:10px;padding:.65rem .75rem;font:inherit;color:var(--text);background:#fff}input:focus{outline:3px solid rgba(14,116,144,.18);border-color:var(--primary)}button{border:1px solid transparent;border-radius:10px;padding:.6rem .9rem;font:inherit;font-weight:600;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}button:disabled{opacity:.55;cursor:not-allowed;transform:none}button:not(:disabled):hover{transform:translateY(-1px)}.btn-primary{color:#fff;background:linear-gradient(140deg,#0e7490,#0b6379);box-shadow:0 10px 20px -14px #0b6379e6}.btn-secondary{color:var(--text);background:#edf6fa;border-color:#d5e8ef}.btn-danger{color:#fff;background:linear-gradient(140deg,#ca4337,#b9382e)}.message{margin-top:.9rem;padding:.65rem .8rem;border-radius:10px;font-size:.92rem}.message-success{color:#155c3a;background:#1d7f4f21;border:1px solid rgba(29,127,79,.25)}.message-error{color:#8f2b22;background:#b9382e1f;border:1px solid rgba(185,56,46,.24)}.dashboard-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.2rem}.dashboard-meta{margin-top:.5rem;color:var(--muted)}.dashboard-link{margin-top:.3rem;color:#31525e}.dashboard-grid{display:grid;gap:1rem}.panel-title{margin-bottom:.9rem}.app-overview{background:linear-gradient(145deg,#fff,#f3f9fc)}.feature-list{margin:0;padding-left:1.1rem;color:#31525e;display:grid;gap:.4rem}.feature-repo-link{margin-top:.7rem;color:#31525e}.inline-form{display:flex;gap:.6rem;margin-bottom:.8rem}.inline-form input{flex:1}.info-box{border:1px dashed #9bc3d0;background:#f1f9fc;border-radius:10px;padding:.8rem;margin-bottom:.8rem}.info-box pre{margin:.45rem 0 0;overflow-x:auto}.metrics-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem}.metric-card{border:1px solid var(--line);background:var(--surface-soft);border-radius:10px;padding:.7rem}.metric-label{color:var(--muted);font-size:.82rem}.metric-value{margin-top:.25rem;font-weight:700;font-size:1.3rem}table{width:100%;border-collapse:collapse;border-radius:10px;overflow:hidden;border:1px solid var(--line)}thead{background:#f0f7fa}th,td{text-align:left;padding:.6rem;border-bottom:1px solid var(--line)}tbody tr:last-child td{border-bottom:none}code{background:#e9f2f6;border-radius:6px;padding:.05rem .35rem}@media(max-width:860px){main,.auth-shell{width:calc(100vw - 1.2rem);margin:1rem auto}.dashboard-header{flex-direction:column;align-items:stretch}.metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.inline-form{flex-direction:column}}@media(max-width:540px){.metrics-grid{grid-template-columns:1fr}}
