:root{--primary: #0f6e6e;--primary-dark: #0a4f4f;--primary-light: #e6f4f4;--accent: #c9963b;--danger: #b3261e;--danger-light: #fbe9e7;--ink: #1b2a2a;--muted: #5c6b6b;--border: #d9e3e3;--bg: #f4f8f8;--card: #ffffff;--radius: 10px;font-family:Segoe UI,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}a{color:var(--primary)}button{font-family:inherit;cursor:pointer}.btn{border:none;border-radius:8px;padding:9px 16px;font-size:14px;font-weight:600;background:var(--primary);color:#fff;transition:background .15s}.btn:hover{background:var(--primary-dark)}.btn:disabled{background:#a9b8b8;cursor:not-allowed}.btn-outline{background:transparent;color:var(--primary);border:1px solid var(--primary)}.btn-outline:hover{background:var(--primary-light)}.btn-danger{background:var(--danger)}.btn-danger:hover{background:#8f1f19}.btn-sm{padding:5px 10px;font-size:12px}.topbar{background:var(--primary-dark);color:#fff;padding:12px 24px;display:flex;align-items:center;gap:16px;position:sticky;top:0;z-index:50}.topbar .brand{font-weight:700;font-size:18px;letter-spacing:.5px}.topbar .brand span{color:var(--accent)}.topbar .inst-name{font-size:13px;opacity:.85;margin-right:16px}.topbar-brand{display:flex;flex-direction:column;align-items:center;text-align:center;position:absolute;left:50%;transform:translate(-50%);pointer-events:none}.topbar-inst{font-size:12.5px;color:#cfe6e6;margin-top:3px;font-weight:600}.topbar-nav{display:flex;gap:8px}.topbar-logout{margin-left:auto}.nav-btn{background:#ffffff1f;border:1px solid rgba(255,255,255,.28);color:#fff;padding:8px 16px;border-radius:8px;font-weight:600;font-size:13px}.nav-btn:hover{background:#ffffff38}.nav-btn.active{background:#fff;color:var(--primary-dark);border-color:#fff}.nav-btn.nav-back{background:transparent;border-color:#ffffff73}.page{max-width:960px;margin:0 auto;padding:28px 20px 60px}.profile-shell{height:100vh;display:flex;flex-direction:column;overflow:hidden}.profile-shell .topbar{flex-shrink:0}.profile-body{flex:1;min-height:0;overflow:hidden;width:100%;max-width:1440px;margin:0 auto;padding:20px}.profile-layout{display:flex;gap:28px;align-items:stretch;height:100%}.history-col{flex:1;min-width:0;height:100%}.history-card{height:100%;display:flex;flex-direction:column;margin-bottom:0;overflow:hidden}.history-head{display:flex;justify-content:space-between;align-items:center;flex-shrink:0;padding-bottom:14px;border-bottom:1px solid var(--border)}.events-scroll{flex:1;min-height:0;overflow-y:auto;padding:16px 8px 4px 16px}.info-col{width:480px;flex-shrink:0;height:100%;overflow-y:auto}.info-col .card{margin-bottom:0;padding:24px}.info-col .profile-header h1{font-size:22px}.info-col .grid-fields{grid-template-columns:1fr 1fr;gap:16px 24px}@media (max-width: 1000px){.profile-shell{height:auto;overflow:visible}.profile-body{overflow:visible}.profile-layout{flex-direction:column-reverse;height:auto}.history-col,.history-card{height:auto}.events-scroll{overflow-y:visible}.info-col{width:100%;height:auto;overflow-y:visible}}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:18px}.card h2,.card h3{margin-top:0}input,select,textarea{width:100%;padding:9px 11px;border:1px solid var(--border);border-radius:7px;font-size:14px;font-family:inherit;background:#fff;color:var(--ink)}textarea{resize:vertical;min-height:70px}label{font-size:13px;font-weight:600;color:var(--muted);display:block;margin-bottom:4px}.field{margin-bottom:14px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.error-text{color:var(--danger);font-size:13px;margin:6px 0 0}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary-dark),var(--primary))}.login-card{background:#fff;border-radius:14px;padding:36px 32px;width:360px;box-shadow:0 20px 50px #00000040}.login-logo{display:block;width:150px;height:auto;margin:0 auto 14px}.login-card h1{font-size:22px;margin:0 0 4px;color:var(--primary-dark);text-align:center}.login-card .sub{color:var(--muted);font-size:13px;margin-bottom:22px;text-align:center}.login-card .demo-hint{font-size:12px;color:var(--muted);margin-top:16px;line-height:1.5;background:var(--primary-light);padding:10px;border-radius:7px}.search-row{display:flex;gap:10px}.search-row input{flex:1}.patient-list{list-style:none;padding:0;margin:14px 0 0}.patient-list li{padding:12px 14px;border:1px solid var(--border);border-radius:8px;margin-bottom:8px;display:flex;justify-content:space-between;align-items:center;cursor:pointer;transition:border-color .15s}.patient-list li:hover{border-color:var(--primary)}.patient-list .name{font-weight:600}.patient-list .meta{font-size:12px;color:var(--muted)}.patient-list .kma-id{font-family:monospace;font-size:12px;background:var(--primary-light);color:var(--primary-dark);padding:2px 8px;border-radius:6px}.profile-header{display:flex;justify-content:space-between;align-items:flex-start}.profile-header h1{margin:0 0 4px}.profile-header .kma-id{font-family:monospace;color:var(--primary-dark);font-size:14px}.grid-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:12px 20px;margin-top:10px}.grid-fields .item .k{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted)}.grid-fields .item .v{font-size:14px;margin-top:2px}.timeline{position:relative;margin-top:10px;padding-left:22px}.timeline:before{content:"";position:absolute;left:6px;top:6px;bottom:6px;width:2px;background:var(--border)}.event-card{position:relative;margin-bottom:14px}.event-card:before{content:"";position:absolute;left:-22px;top:18px;width:12px;height:12px;border-radius:50%;background:var(--primary);border:2px solid white;box-shadow:0 0 0 2px var(--primary)}.event-card.draft:before{background:var(--accent);box-shadow:0 0 0 2px var(--accent)}.event-header{display:flex;justify-content:space-between;align-items:center;cursor:pointer;padding:14px 16px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius)}.event-header .title{font-weight:700}.event-header .date{font-size:12px;color:var(--muted)}.event-header .badges{display:flex;gap:8px;align-items:center}.status-pill{font-size:11px;padding:3px 9px;border-radius:20px;font-weight:600}.status-pill.locked{background:var(--primary-light);color:var(--primary-dark)}.status-pill.draft{background:#fff4e0;color:#8a6116}.event-body{border:1px solid var(--border);border-top:none;border-radius:0 0 var(--radius) var(--radius);padding:16px;background:#fbfdfd}.category-grid{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.category-group-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--accent);margin:4px 0 8px;padding-top:10px;border-top:1px dashed var(--border)}.category-btn{border:1px solid var(--border);background:#fff;border-radius:20px;padding:6px 14px;font-size:12.5px;font-weight:600;color:var(--muted)}.category-btn.active{background:var(--danger-light);border-color:var(--danger);color:var(--danger)}.category-btn:hover{border-color:var(--primary)}.entry-list{list-style:none;padding:0;margin:0}.entry-item{padding:10px 12px;border:1px solid var(--border);border-radius:8px;margin-bottom:8px;background:#fff}.entry-item .cat-label{font-size:11px;font-weight:700;color:var(--primary-dark);text-transform:uppercase}.entry-item .desc{font-size:14px;margin-top:4px}.entry-item .row{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a191973;display:flex;align-items:center;justify-content:center;z-index:50}.modal{background:#fff;border-radius:12px;padding:24px;width:420px;max-width:92vw;max-height:88vh;overflow-y:auto}.modal h3{margin-top:0}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.reg-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px 16px}.reg-grid .field{margin-bottom:0}.reg-grid .span-3{grid-column:1 / -1}@media (max-width: 720px){.reg-grid{grid-template-columns:1fr 1fr}.reg-grid .span-3{grid-column:1 / -1}}.empty-state{text-align:center;color:var(--muted);padding:30px 10px}.charts-page{max-width:1180px}.charts-header{margin-bottom:18px}.charts-header h1{margin:0}.charts-header .kma-id{font-family:monospace;color:var(--primary-dark);font-size:14px}.charts-header .charts-sub{color:var(--muted);font-size:13px;margin-top:6px}.chart-title{margin:0 0 2px;font-size:16px;color:var(--primary-dark)}.chart-caption{margin:0 0 14px;font-size:12.5px;color:var(--muted)}.stat-tiles{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:18px}.stat-tile{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px 14px;text-align:center}.stat-tile .stat-value{font-size:22px;font-weight:800;color:var(--primary-dark);line-height:1.1}.stat-tile .stat-label{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);margin-top:6px}.charts-grid{display:grid;grid-template-columns:1fr;gap:18px}@media (max-width: 820px){.stat-tiles{grid-template-columns:repeat(2,1fr)}}.analytics-page{max-width:1400px}.analytics-topline{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:20px;flex-wrap:wrap}.range-toggle{display:inline-flex;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:4px;gap:2px}.range-btn{border:none;background:transparent;padding:8px 16px;border-radius:7px;font-size:13px;font-weight:700;color:var(--muted)}.range-btn:hover{color:var(--primary-dark)}.range-btn.active{background:var(--primary);color:#fff}.bar-row rect{transition:opacity .12s}.bar-row:hover rect{opacity:.82}.chart-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.chart-card-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.expand-btn{border:1px solid var(--border);background:var(--card);color:var(--muted);width:30px;height:30px;border-radius:7px;font-size:15px;line-height:1;display:flex;align-items:center;justify-content:center}.expand-btn:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-light)}.chart-modal-backdrop{backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);background:#0a191980;padding:24px}.chart-modal{background:var(--card);border-radius:14px;padding:26px 30px;width:min(1100px,94vw);max-height:92vh;overflow-y:auto;box-shadow:0 24px 70px #00000059}.chart-modal-body{margin-top:8px}.analytics-section-title{font-size:15px;text-transform:uppercase;letter-spacing:.6px;color:var(--primary-dark);margin:26px 0 12px;padding-bottom:8px;border-bottom:2px solid var(--primary-light)}.analytics-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.analytics-grid-3{grid-template-columns:1fr 1fr 1fr}.alerts-band{background:linear-gradient(135deg,#7a1512,#b3261e);border-radius:var(--radius);padding:16px 18px;margin-bottom:8px}.alerts-band-label{color:#fff;font-weight:800;font-size:14px;margin-bottom:12px;letter-spacing:.3px}.alerts-row{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.alert-card{background:#fffffff2;border-radius:9px;padding:12px;border-left:4px solid var(--danger)}.alert-card.alert-high{border-left-color:#b3261e}.alert-card.alert-medium{border-left-color:#d94f00}.alert-card.alert-low{border-left-color:#c9963b}.alert-change{font-size:20px;font-weight:800;color:var(--danger)}.alert-card.alert-medium .alert-change{color:#d94f00}.alert-card.alert-low .alert-change{color:#a9781f}.alert-label{font-size:12.5px;font-weight:700;color:var(--ink);margin-top:2px;line-height:1.25}.alert-period{font-size:11px;color:var(--muted);margin-top:3px}@media (max-width: 1000px){.analytics-grid,.analytics-grid-3{grid-template-columns:1fr}.alerts-row,.stat-tiles{grid-template-columns:repeat(2,1fr)}}.link-btn{background:none;border:none;color:var(--primary);font-size:13px;font-weight:600;padding:0}
