:root{
  --bg:#f5f9fb;--panel:#fff;--ink:#0e2443;--muted:#667891;--line:#dce7ee;
  --accent:#0fa4aa;--accent-dark:#078993;--blue:#2d86c8;--shadow:0 8px 30px rgba(27,62,87,.07);
}
*{box-sizing:border-box} html,body{margin:0;min-height:100%;font-family:Segoe UI,Arial,sans-serif;color:var(--ink);background:var(--bg)}
a{color:#096cae;text-decoration:none} button,input,select{font:inherit}
.topbar{height:74px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 30px;box-shadow:0 1px 10px rgba(0,0,0,.03);position:sticky;top:0;z-index:20}
.brand{display:flex;align-items:center;gap:10px;font-size:29px;font-weight:700;color:var(--ink)} .brand small{font-size:14px;font-weight:400;color:var(--muted);margin-left:5px}
.brand-mark{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,#27b4ac,#098b9c);display:grid;place-items:center;color:white;font-size:30px}
.top-actions{display:flex;align-items:center;gap:14px}.icon-link{font-size:18px;color:#31506d;display:flex;flex-direction:column;align-items:center;gap:2px}.icon-link span{font-size:11px}
.user-menu{position:relative}.user-button{border:0;background:transparent;display:flex;align-items:center;gap:10px;padding:8px 10px;cursor:pointer}.avatar{width:40px;height:40px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:700}.user-copy{display:flex;flex-direction:column;text-align:left}.user-copy small{color:var(--muted)}
.menu-dropdown{display:none;position:absolute;right:0;top:58px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);min-width:180px;padding:6px}.menu-dropdown.open{display:block}.menu-dropdown a{display:block;padding:10px 12px;border-radius:7px;color:var(--ink)}.menu-dropdown a:hover{background:#f1f7f9}
.page{max-width:1600px;margin:0 auto;padding:24px 34px}.welcome{display:flex;justify-content:space-between;align-items:end;margin-bottom:18px}.welcome h1{font-size:32px;margin:0 0 2px}.welcome p{margin:0;color:var(--muted)}.tagline{font-style:italic;color:#7c8ca1;font-size:13px}
.primary-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.action-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px 28px;text-align:center;box-shadow:0 2px 8px rgba(20,65,90,.03);cursor:pointer;min-height:232px}.action-card:hover{transform:translateY(-1px);box-shadow:var(--shadow)}.accent-soft{background:linear-gradient(135deg,#f2ffff,#fbffff)}.blue-soft{background:linear-gradient(135deg,#f3f9ff,#fbfdff)}.action-card.strong{border-color:#26b6bc}.action-icon{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;margin:0 auto 12px;background:white;border:1px solid #cfe6ea;color:#0e91a0;font-size:34px}.action-card h2{font-size:23px;margin:7px 0}.action-card p{color:#5f718a;max-width:430px;margin:0 auto 18px;line-height:1.4}
.btn{border:0;border-radius:7px;padding:11px 20px;font-weight:700;cursor:pointer;display:inline-block}.btn.primary{background:linear-gradient(#13a7ad,#0d919d);color:white}.btn.ghost{background:#fff;border:1px solid var(--line);color:var(--ink)}.btn.small{padding:9px 18px}.btn.full{width:100%}
.secondary-actions{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:18px}.wide-action{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px 24px;display:flex;gap:18px;align-items:center;cursor:pointer}.round-icon{min-width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:#f6fbfd;border:1px solid #d7e8ed;color:#0e91a0;font-size:31px}.wide-action h2{margin:0 0 3px;font-size:21px}.wide-action p{margin:0 0 10px;color:var(--muted);line-height:1.35}
.bottom-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:20px;margin-top:18px}.panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px;box-shadow:0 2px 8px rgba(20,65,90,.03)}.panel-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.panel-heading h2{margin:0;font-size:20px}
table{width:100%;border-collapse:collapse}.recent-table th,.recent-table td{padding:10px 12px;border-bottom:1px solid #e8eef2;text-align:left;font-size:14px}.recent-table th{background:#eef5f8;color:#587089}.recent-table tr:last-child td{border-bottom:0}.clickable-row{cursor:pointer}.clickable-row:hover{background:#f7fbfc}.status{display:inline-block;padding:5px 14px;border-radius:999px;font-size:12px;min-width:84px;text-align:center}.status.warn{background:#fff1c7;color:#8a6412}.status.info{background:#dceeff;color:#176ca3}.status.ok{background:#dbf5e4;color:#2a7f4c}.status.purple{background:#eee1ff;color:#6b43a2}
.workflow{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:12px 8px 4px}.workflow>div{text-align:center;flex:1;display:flex;flex-direction:column;align-items:center;gap:4px}.workflow>b{}.workflow div b{width:30px;height:30px;border-radius:50%;background:#d8f3f3;color:#138b96;display:grid;place-items:center}.workflow div span{font-size:29px;color:#0b8fa1}.workflow div strong{font-size:14px}.workflow div small{color:var(--muted);font-size:11px;line-height:1.25}.workflow i{font-style:normal;color:#9cb1bf;font-size:25px;margin-top:37px}
.footer{padding:13px 34px;border-top:1px solid var(--line);color:#61768c;font-size:12px;display:flex;gap:18px;background:#fff}.footer span:last-child{margin-left:auto}
.modal-backdrop{position:fixed;inset:0;background:rgba(10,25,42,.38);display:grid;place-items:center;z-index:99}.modal-backdrop[hidden]{display:none}.modal{width:min(520px,90vw);background:#fff;border-radius:14px;padding:24px;box-shadow:0 25px 80px rgba(0,0,0,.25);position:relative}.modal-close{position:absolute;right:13px;top:9px;border:0;background:transparent;font-size:28px;cursor:pointer}.modal h2{margin-top:0}.modal p{color:var(--muted);line-height:1.5}
.auth-bg{display:grid;place-items:center;background:linear-gradient(135deg,#eef9fa,#f7fbfd);min-height:100vh}.auth-card{width:min(430px,92vw);background:#fff;border:1px solid var(--line);border-radius:16px;padding:30px;box-shadow:var(--shadow)}.auth-brand{font-size:25px;margin-bottom:20px}.auth-card h1{margin-bottom:4px}.auth-card form{display:grid;gap:14px}.auth-card label{display:grid;gap:6px;font-weight:600}.auth-card input,.auth-card select,.form-grid input,.form-grid select{border:1px solid #cfdce4;border-radius:8px;padding:11px 12px;background:#fff}.muted{color:var(--muted)}
.alert{padding:12px 14px;border-radius:8px;margin:12px 0}.alert.success{background:#e6f7ed;color:#276a43}.alert.danger{background:#fdeaea;color:#9b2d2d}
.page-title-row{display:flex;justify-content:space-between;align-items:center}.admin-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid label{display:grid;gap:6px}.form-grid .wide{grid-column:1/-1}.table-wrap{overflow:auto}
.analysis-skeleton{max-width:none;padding:16px}.analysis-top{display:flex;align-items:center;gap:18px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 12px}.analysis-top>div{flex:1}.analysis-toolbar{display:flex;gap:8px;padding:10px 0}.analysis-toolbar span{flex:1}.analysis-toolbar button{background:#fff;border:1px solid var(--line);border-radius:7px;padding:8px 12px}.analysis-layout{display:grid;grid-template-columns:1fr 300px;gap:12px}.ecg-placeholder{min-height:520px;position:relative;background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}.grid-lines{position:absolute;inset:0;background-image:linear-gradient(#f1dede 1px,transparent 1px),linear-gradient(90deg,#f1dede 1px,transparent 1px);background-size:10px 10px}.placeholder-copy{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:8px;color:#6e8194}.placeholder-copy strong{font-size:28px;color:#173451}.analysis-side{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px}.analysis-side h3{border-bottom:2px solid var(--accent);padding-bottom:8px}.side-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #edf2f4}.analysis-bottom{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.analysis-bottom section{background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px}.analysis-bottom h3{margin:0 0 10px}.mini-placeholder{height:130px;display:grid;place-items:center;background:linear-gradient(#fbfdfe,#f3f8fa);color:#7a8c9c}
@media(max-width:980px){.primary-actions{grid-template-columns:1fr}.secondary-actions,.bottom-grid,.admin-grid,.analysis-layout,.analysis-bottom{grid-template-columns:1fr}.workflow{overflow:auto}.tagline{display:none}.topbar{padding:0 14px}.brand small{display:none}.page{padding:18px}.user-copy{display:none}}


.visual-page{max-width:1720px}
.visual-topbar{display:flex;align-items:center;gap:18px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:16px}
.visual-topbar>div{flex:1}
.visual-topbar h1{margin:0 0 4px;font-size:28px}
.visual-topbar p{margin:0;color:var(--muted)}
.visual-frame{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;box-shadow:0 2px 8px rgba(20,65,90,.03)}
.visual-frame img{display:block;width:100%;height:auto;border-radius:10px}
