:root{--wine:#6c3043;--wine2:#8e6572;--ink:#352a2f;--bg:#f7f5f3;--muted:#84747b;--line:#eae2e1;--shadow:0 6px 24px #43232f05}
body{font-family:'DM Sans',Arial,sans-serif;line-height:1.55}h1,h2{font-family:'Playfair Display',Georgia,serif;font-weight:500}a{color:var(--wine);text-decoration:none}button,input,textarea{font:inherit}button,a,input,textarea,summary{outline-offset:4px}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}[hidden]{display:none!important}
.shell{display:grid;grid-template-columns:242px minmax(0,1fr);min-height:100vh}.sidebar{height:100dvh;position:sticky;top:0;background:linear-gradient(160deg,#482330,#301b24);padding:30px 20px;color:#e4d1d8;display:flex;flex-direction:column}.wordmark{display:flex;align-items:center;gap:15px;color:#e2c49c;font:38px 'Playfair Display',Georgia,serif}.wordmark span{font:600 13px 'DM Sans',Arial;letter-spacing:.2em;color:#fff}.wordmark small{display:block;font-size:8px;letter-spacing:.12em;color:#d5bdb0;margin-top:8px}.sidebar-label{font-size:9px;letter-spacing:.15em;color:#ac919c;margin:38px 10px 15px}.sidebar nav{display:grid;gap:6px}.sidebar nav a{display:flex;justify-content:space-between;padding:12px 13px;border-radius:8px;font-size:12px;color:#d9c4cb}.sidebar nav a:hover,.sidebar nav a[aria-current]{background:#ffffff12;color:white}.sidebar nav a[aria-current]{box-shadow:inset 2px 0 #d8b78b}.sidebar nav span{font-size:10px;color:#c6a382}.sidebar-bottom{margin-top:auto;padding-top:25px}.sidebar-bottom>a{display:block;color:#cbb4be;font-size:11px;margin-bottom:25px}.sidebar-bottom strong,.sidebar-bottom small{display:block}.sidebar-bottom small{font-size:10px;color:#bd9fae}.logout{margin-top:10px;border:0;background:transparent;color:#e7ced5;padding:0;font-size:11px}.workspace{min-width:0}.topbar{height:76px;padding:0 38px;display:flex;justify-content:space-between;align-items:center;background:#fffaf8;border-bottom:1px solid var(--line);font-size:11px;color:var(--muted)}.topbar b{margin:0 12px;font-weight:400;color:#baa6ae}.private-label{font-size:9px;letter-spacing:.12em}#menu-toggle{display:none;background:none;border:0;color:var(--wine);font-size:24px}.portal-main{max-width:1450px;padding:36px 38px 50px;width:100%;margin:auto}.welcome{position:relative;overflow:hidden;background:linear-gradient(120deg,#673448,#392434);border-radius:18px;padding:38px 40px;color:#fff0eb}.overline{display:block;letter-spacing:.16em;font-size:10px;font-weight:600}.welcome .overline{color:#d5b48c}.welcome h1{font-size:clamp(30px,3.3vw,47px);line-height:1.22;margin:18px 0}.welcome p{max-width:460px;color:#dec5cd;font-size:13px;position:relative;z-index:1}.watermark{font:170px 'Playfair Display',Georgia;color:#d2b69120;position:absolute;right:40px;bottom:15px}.button{display:inline-flex;align-items:center;justify-content:center;gap:18px;border:1px solid #deccd3;background:#fff;color:var(--wine);border-radius:9px;padding:12px 18px;font-size:12px;font-weight:600;min-height:44px}.button.primary{background:var(--wine);color:white;border-color:var(--wine)}.button.light{background:#f5e9da;border:0;margin-top:16px}.overview-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:17px;margin:22px 0}.overview-stats article{padding:23px;background:#fff;border:1px solid var(--line);border-radius:13px}.overview-stats span{font-size:10px;color:var(--muted);letter-spacing:.1em}.overview-stats strong{display:block;font-size:34px;color:#603246;font-weight:500;margin:7px 0}.overview-stats small{font-size:11px;color:var(--muted)}.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.quick-grid a{border:1px solid var(--line);background:white;padding:26px;border-radius:14px}.quick-grid span{font-size:9px;letter-spacing:.12em;color:#a08073}.quick-grid h2{font-size:26px;margin:12px 0}.quick-grid p{font-size:12px;color:var(--muted)}.quick-grid b{display:block;font-size:11px;margin-top:24px}.source-note{font-size:11px;color:var(--muted);padding:24px 0}.section-head{margin-bottom:24px}.section-head h2{font-size:34px}.section-head p{font-size:12px}.product-card h3,.protocol-head h3{font-family:'Playfair Display',Georgia;font-weight:500}.product-card h3{font-size:22px}.protocol-head h3{font-size:26px}.protocol-head p{min-height:36px}.settings{padding:24px;grid-template-columns:repeat(2,minmax(0,1fr))}.settings input,.patient-grid input,.patient-grid textarea{box-sizing:border-box;font-family:inherit;max-width:100%}.protocol-card{padding:23px}.protocol-grid{gap:20px}.protocol-actions{grid-template-columns:1fr 1fr}.protocol-actions button{min-height:44px;font:600 11px 'DM Sans',Arial;padding:12px}.section-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 24px}.patient-panel{padding:24px}.records-panel{background:white;border:1px solid var(--line);border-radius:14px;padding:24px;margin-top:28px}.records-panel h3{margin-top:0}.record{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 0;border-top:1px solid var(--line)}.record strong,.record small{display:block}.record small{font-size:11px;color:var(--muted)}.team-card{background:white;border:1px solid var(--line);border-radius:12px;padding:22px;margin-bottom:12px}.team-card h3{margin:0}.team-card p{font-size:12px;color:var(--muted);margin-bottom:0}#feedback{position:sticky;top:12px;z-index:30;background:#eef8f1;border:1px solid #bfd8c7;padding:12px 18px;border-radius:9px;margin-bottom:20px;font-size:13px}#feedback.error,.notice.error{background:#fff0f0;border-color:#e0b5b5;color:#802d3d}.search-protocols{width:100%;padding:14px 16px;border:1px solid var(--line);border-radius:9px;background:white;margin-bottom:18px}.tabs{padding-bottom:8px}.tabs .tab{font-weight:600}.portal-main .hidden{display:none!important}footer{display:flex;justify-content:space-between;gap:15px;padding:20px 38px;border-top:1px solid var(--line);font-size:10px;color:var(--muted)}
.login-shell{max-width:none;width:100%;padding:0;display:grid;grid-template-columns:1.1fr 1fr;min-height:100dvh}.login-story{padding:50px 60px;background:linear-gradient(140deg,#3d202c,#6f384c);color:#f7ebe6;display:flex;flex-direction:column;justify-content:space-between;gap:50px}.login-story h1{font-size:clamp(32px,4vw,55px);line-height:1.25;margin:20px 0}.login-story p{font-size:14px;color:#d8bfc9;max-width:440px}.login-story>span{font-size:9px;letter-spacing:.15em;color:#cdb195}.login-form{align-self:center;padding:55px;max-width:490px;width:100%;margin:auto}.login-form h2{font-size:35px;line-height:1.25;margin:15px 0}.login-form p{font-size:13px;color:var(--muted)}.login-form form{margin-top:28px}.login-form label{display:block;font-size:11px;color:var(--wine);margin:16px 0}.login-form input{display:block;width:100%;border:1px solid var(--line);border-radius:8px;background:#fff;padding:13px;margin-top:7px}.login-form .button{width:100%;justify-content:space-between;margin-top:14px}.login-form>a{display:block;font-size:11px;margin-top:26px}.notice{padding:12px;border:1px solid;border-radius:8px}
@media(max-width:1100px){.protocol-grid{grid-template-columns:1fr}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-main{padding:28px 25px}.welcome{padding:30px}.patient-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:780px){.shell{display:block}.sidebar{position:fixed;left:0;top:0;width:250px;z-index:60;transform:translateX(-100%);transition:transform .2s}.menu-open .sidebar{transform:translateX(0)}#menu-toggle{display:block}.topbar{height:64px;padding:0 18px;gap:15px;justify-content:flex-start}.private-label{display:none}.portal-main{padding:22px 18px}.overview-stats{gap:9px}.overview-stats article{padding:15px 12px}.overview-stats strong{font-size:27px}.overview-stats small{font-size:10px}.quick-grid{grid-template-columns:1fr}.welcome h1{font-size:31px}.watermark{font-size:120px;right:15px}.product-grid{grid-template-columns:1fr}.section-head h2{font-size:29px}.settings{grid-template-columns:1fr}.protocol-card{padding:17px}.protocol-table{font-size:10px}.protocol-ml{width:56px}.patient-grid{grid-template-columns:1fr}.patient-grid .wide{grid-column:auto}.protocol-actions{grid-template-columns:1fr}.login-shell{grid-template-columns:1fr}.login-story{padding:28px;gap:25px}.login-story h1{font-size:30px}.login-story>span{display:none}.login-form{padding:32px 28px}.login-story p{display:none}footer{padding:20px;flex-wrap:wrap}.record{flex-wrap:wrap}}
.user-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:22px 0}.user-fields label,.composition-row label{display:flex;flex-direction:column;gap:7px;font-size:12px;color:var(--wine)}.user-fields .wide{grid-column:1/-1}.user-fields input,.user-fields select,.user-fields textarea,.composition-row input,.composition-row select{font:inherit;width:100%;min-width:0;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink)}.user-fields input:disabled,.user-fields select:disabled,input:disabled,textarea:disabled{color:#62535a;background:#f3f0f1;opacity:1}.user-fields small{color:var(--muted);font-size:11px}.user-result{font-size:13px;white-space:pre-wrap}.user-editor>summary{font:500 14px 'DM Sans',Arial;cursor:pointer;line-height:1.7}.user-editor>summary::after{display:none}.catalog-dialog{width:min(800px,calc(100vw - 28px));max-height:90dvh;border:1px solid var(--line);border-radius:18px;padding:28px;color:var(--ink);background:var(--bg);box-shadow:0 20px 100px #25151f44}.catalog-dialog::backdrop{background:#25151fa6}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}.dialog-heading h2{font-size:28px;margin:0}.catalog-dialog form{margin:0}.composition{border:1px solid var(--line);border-radius:10px;padding:18px;min-width:0}.composition legend{font-size:13px}.composition-row{display:grid;grid-template-columns:minmax(0,1fr) 100px auto;align-items:end;gap:10px;margin-bottom:15px}.content-text{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;line-height:1.8;padding:15px 0}.product-card .button,.protocol-card>[data-catalog-kind]{margin-top:14px}.image-placeholder{font:60px 'Playfair Display',Georgia;color:#c7a786}.editor-image{max-width:140px;max-height:140px;object-fit:contain}.record-context{padding:16px;background:#f5e9da;border-radius:10px;margin-bottom:20px;font-size:12px}.record-context a{display:block;text-decoration:underline;margin-top:6px}
@media(max-width:780px){.user-fields{grid-template-columns:1fr}.catalog-dialog{padding:20px}.composition-row{grid-template-columns:minmax(0,1fr) 85px}.composition-row .button{grid-column:1/-1}.user-fields select{font-size:13px}.dialog-heading h2{font-size:24px}}
@media print{body.printing>.shell,body.printing>.catalog-dialog{display:none!important}.print-document{white-space:normal}.print-document p{overflow-wrap:anywhere}}
