Spaces:
Sleeping
Sleeping
| :root{ | |
| --ink:#1B3A4B; | |
| --teal:#0D7377; | |
| --teal-deep:#0A5A5D; | |
| --mint:#32E0C4; | |
| --paper:#FFFFFF; | |
| --paper-dim:#F4F8F8; | |
| --line:#E1E8E8; | |
| --line-strong:#C7D4D4; | |
| --teal-tint:#E3F3F3; | |
| --mint-tint:#E5FBF6; | |
| --text-soft:#5B6E70; | |
| --risk-low:#2F7D52; | |
| --risk-low-tint:#E8F3EC; | |
| --risk-mod:#B8862B; | |
| --risk-mod-tint:#FBF1E1; | |
| --risk-high:#C44536; | |
| --risk-high-tint:#FCEAE7; | |
| --font-display:'Fraunces', serif; | |
| --font-body:'Inter', sans-serif; | |
| --font-mono:'JetBrains Mono', monospace; | |
| /* Spacing scale */ | |
| --sp-xs:8px; | |
| --sp-sm:14px; | |
| --sp-md:22px; | |
| --sp-lg:32px; | |
| --sp-xl:48px; | |
| } | |
| /* ββ Reset ββ */ | |
| *{margin:0;padding:0;box-sizing:border-box;} | |
| body{ | |
| background:var(--paper); | |
| color:var(--ink); | |
| font-family:var(--font-body); | |
| line-height:1.5; | |
| -webkit-font-smoothing:antialiased; | |
| /* prevent horizontal overflow on all devices */ | |
| overflow-x:hidden; | |
| } | |
| a{color:inherit;} | |
| img,svg{max-width:100%;} | |
| /* ββ App wrapper ββ */ | |
| .app{ | |
| max-width:1180px; | |
| margin:0 auto; | |
| padding:0 clamp(14px, 4vw, 28px) 80px; | |
| } | |
| /* ββββββββββββββββββββββββββββββββββββββ | |
| TOPBAR | |
| ββββββββββββββββββββββββββββββββββββββ */ | |
| .topbar{ | |
| display:flex; | |
| align-items:center; | |
| justify-content:space-between; | |
| flex-wrap:wrap; | |
| gap:10px; | |
| padding:18px 0 14px; | |
| border-bottom:1px solid var(--line); | |
| margin-bottom:28px; | |
| } | |
| .logo{height:clamp(36px,5vw,48px);display:block;} | |
| .topbar-right{display:flex;align-items:center;} | |
| .proto-tag{ | |
| font-family:var(--font-mono); | |
| font-size:clamp(9px,2vw,11px); | |
| letter-spacing:.03em; | |
| color:var(--teal-deep); | |
| background:var(--teal-tint); | |
| border:1px solid #BFE0E0; | |
| padding:5px 10px; | |
| border-radius:5px; | |
| font-weight:500; | |
| white-space:nowrap; | |
| } | |
| /* ββββββββββββββββββββββββββββββββββββββ | |
| DISCLAIMER | |
| ββββββββββββββββββββββββββββββββββββββ */ | |
| .disclaimer{ | |
| display:flex; | |
| gap:12px; | |
| align-items:flex-start; | |
| background:var(--ink); | |
| color:#fff; | |
| border-radius:10px; | |
| padding:clamp(10px,3vw,14px) clamp(12px,4vw,18px); | |
| margin-bottom:clamp(22px,4vw,36px); | |
| } | |
| .disclaimer svg{width:16px;height:16px;flex-shrink:0;margin-top:2px;color:var(--mint);} | |
| .disclaimer p{font-size:clamp(12px,2.5vw,13px);line-height:1.55;color:#D9E4E4;} | |
| .disclaimer strong{color:#fff;font-weight:600;} | |
| /* ββββββββββββββββββββββββββββββββββββββ | |
| PAGE TITLE | |
| ββββββββββββββββββββββββββββββββββββββ */ | |
| .page-title{ | |
| font-family:var(--font-display); | |
| font-size:clamp(20px,4vw,27px); | |
| font-weight:600; | |
| letter-spacing:-0.01em; | |
| margin-bottom:8px; | |
| line-height:1.2; | |
| } | |
| .page-subtitle{ | |
| font-size:clamp(13px,2.5vw,14px); | |
| color:var(--text-soft); | |
| margin-bottom:16px; | |
| max-width:560px; | |
| } | |
| /* ββββββββββββββββββββββββββββββββββββββ | |
| INPUT CARD | |
| ββββββββββββββββββββββββββββββββββββββ */ | |
| .input-card{ | |
| border:1px solid var(--line); | |
| border-radius:14px; | |
| padding:clamp(16px,4vw,24px); | |
| background:var(--paper-dim); | |
| margin-bottom:clamp(28px,5vw,44px); | |
| } | |
| .input-grid{ | |
| display:grid; | |
| grid-template-columns:1fr 56px 1fr; | |
| gap:16px; | |
| align-items:end; | |
| } | |
| .field{display:flex;flex-direction:column;gap:8px;position:relative;} | |
| .field label{ | |
| font-size:11px; | |
| font-weight:600; | |
| letter-spacing:.04em; | |
| text-transform:uppercase; | |
| color:var(--text-soft); | |
| } | |
| .autocomplete-wrap{position:relative;} | |
| .field input{ | |
| width:100%; | |
| font-family:var(--font-body); | |
| font-size:clamp(14px,3vw,14.5px); | |
| font-weight:500; | |
| padding:clamp(11px,2.5vw,13px) 14px; | |
| border:1.5px solid var(--line-strong); | |
| border-radius:9px; | |
| background:var(--paper); | |
| color:var(--ink); | |
| outline:none; | |
| transition:border-color .15s, box-shadow .15s; | |
| /* prevent zoom on iOS */ | |
| font-size:max(16px, 14px); | |
| } | |
| .field input:focus{ | |
| border-color:var(--teal); | |
| box-shadow:0 0 0 3px rgba(13,115,119,0.12); | |
| } | |
| .swap-col{display:flex;align-items:center;justify-content:center;height:46px;} | |
| .swap-btn{ | |
| width:38px;height:38px;border-radius:50%; | |
| border:1px solid var(--line-strong); | |
| background:var(--paper); | |
| display:flex;align-items:center;justify-content:center; | |
| cursor:pointer; | |
| transition:border-color .15s, transform .25s; | |
| /* touch target minimum 44px */ | |
| min-width:44px;min-height:44px; | |
| } | |
| .swap-btn:hover{border-color:var(--teal);transform:rotate(180deg);} | |
| .swap-btn svg{width:16px;height:16px;color:var(--teal-deep);} | |
| .suggestions{ | |
| position:absolute; | |
| top:calc(100% + 4px); | |
| left:0;right:0; | |
| background:var(--paper); | |
| border:1px solid var(--line-strong); | |
| border-radius:9px; | |
| box-shadow:0 8px 24px rgba(27,58,75,0.12); | |
| z-index:20; | |
| overflow:hidden; | |
| display:none; | |
| /* max-height for long lists on mobile */ | |
| max-height:220px; | |
| overflow-y:auto; | |
| } | |
| .suggestions.open{display:block;} | |
| .suggestion-item{ | |
| padding:clamp(10px,2vw,9px) 14px; | |
| font-size:clamp(13px,3vw,13.5px); | |
| cursor:pointer; | |
| transition:background .1s; | |
| /* larger touch target */ | |
| min-height:44px; | |
| display:flex; | |
| align-items:center; | |
| } | |
| .suggestion-item:hover,.suggestion-item.active{background:var(--teal-tint);} | |
| .input-footer{ | |
| display:flex; | |
| justify-content:space-between; | |
| align-items:center; | |
| margin-top:16px; | |
| gap:12px; | |
| flex-wrap:wrap; | |
| } | |
| .sample-pairs{display:flex;gap:8px;flex-wrap:wrap;flex:1;} | |
| .sample-chip{ | |
| font-family:var(--font-mono); | |
| font-size:clamp(10px,2vw,11px); | |
| padding:6px 10px; | |
| border-radius:6px; | |
| border:1px solid var(--line-strong); | |
| background:var(--paper); | |
| cursor:pointer; | |
| color:var(--text-soft); | |
| transition:all .15s; | |
| min-height:36px; | |
| display:flex; | |
| align-items:center; | |
| } | |
| .sample-chip:hover{border-color:var(--teal);color:var(--teal-deep);background:var(--teal-tint);} | |
| .analyze-btn{ | |
| font-family:var(--font-body); | |
| font-weight:600; | |
| font-size:clamp(13px,3vw,14px); | |
| color:#fff; | |
| background:var(--ink); | |
| border:none; | |
| padding:clamp(11px,2.5vw,13px) clamp(18px,4vw,26px); | |
| border-radius:9px; | |
| cursor:pointer; | |
| display:flex;align-items:center;justify-content:center;gap:9px; | |
| transition:background .15s; | |
| white-space:nowrap; | |
| min-height:48px; | |
| } | |
| .analyze-btn:hover{background:var(--teal-deep);} | |
| .analyze-btn:disabled{opacity:.6;cursor:default;} | |
| .analyze-btn svg{width:15px;height:15px;flex-shrink:0;} | |
| .error-banner{ | |
| margin-top:14px; | |
| padding:12px 16px; | |
| background:var(--risk-high-tint); | |
| border:1px solid #F0C9C2; | |
| border-radius:9px; | |
| color:#8C3327; | |
| font-size:clamp(12.5px,3vw,13.5px); | |
| line-height:1.5; | |
| } | |
| /* ββββββββββββββββββββββββββββββββββββββ | |
| RESULTS | |
| ββββββββββββββββββββββββββββββββββββββ */ | |
| .results{display:flex;flex-direction:column;gap:clamp(22px,4vw,36px);} | |
| .section-title{ | |
| font-family:var(--font-display); | |
| font-size:clamp(16px,3.5vw,19px); | |
| font-weight:600; | |
| margin-bottom:14px; | |
| } | |
| /* result hero */ | |
| .result-hero{ | |
| display:grid; | |
| grid-template-columns:220px 1fr; | |
| gap:clamp(20px,4vw,36px); | |
| border:1px solid var(--line); | |
| border-radius:16px; | |
| padding:clamp(20px,4vw,32px); | |
| position:relative; | |
| overflow:hidden; | |
| } | |
| .result-hero::before{ | |
| content:""; | |
| position:absolute; | |
| top:0;left:0;bottom:0; | |
| width:4px; | |
| } | |
| .result-hero.risk-low::before{background:var(--risk-low);} | |
| .result-hero.risk-modere::before{background:var(--risk-mod);} | |
| .result-hero.risk-eleve::before{background:var(--risk-high);} | |
| .gauge-col{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;} | |
| .gauge-label{font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-soft);} | |
| .result-main{display:flex;flex-direction:column;gap:16px;} | |
| .result-pair{display:flex;align-items:center;gap:8px;flex-wrap:wrap;} | |
| .drug-pill{ | |
| font-family:var(--font-mono); | |
| font-size:clamp(11.5px,2.5vw,13px); | |
| font-weight:600; | |
| padding:6px 12px; | |
| border-radius:7px; | |
| background:var(--ink); | |
| color:#fff; | |
| word-break:break-all; | |
| } | |
| .result-pair .x{color:var(--text-soft);font-size:13px;} | |
| .risk-badge{ | |
| display:inline-flex;align-items:center;gap:7px; | |
| font-size:clamp(12px,2.5vw,13px);font-weight:600; | |
| padding:7px 14px; | |
| border-radius:99px; | |
| width:fit-content; | |
| text-transform:capitalize; | |
| } | |
| .risk-badge.low{background:var(--risk-low-tint);color:var(--risk-low);} | |
| .risk-badge.modere{background:var(--risk-mod-tint);color:var(--risk-mod);} | |
| .risk-badge.eleve{background:var(--risk-high-tint);color:var(--risk-high);} | |
| .risk-badge .dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex-shrink:0;} | |
| .result-headline{ | |
| font-family:var(--font-display); | |
| font-size:clamp(17px,4vw,22px); | |
| font-weight:600; | |
| letter-spacing:-0.01em; | |
| line-height:1.35; | |
| } | |
| .result-headline em{font-style:normal;font-weight:700;} | |
| .result-headline em.low{color:var(--risk-low);} | |
| .result-headline em.modere{color:var(--risk-mod);} | |
| .result-headline em.eleve{color:var(--risk-high);} | |
| .confidence-row{ | |
| display:flex;align-items:center;gap:12px; | |
| padding-top:8px; | |
| border-top:1px solid var(--line); | |
| flex-wrap:wrap; | |
| } | |
| .confidence-label{font-size:12px;color:var(--text-soft);font-weight:500;white-space:nowrap;} | |
| .confidence-bar{flex:1;min-width:80px;height:6px;background:var(--line);border-radius:99px;overflow:hidden;} | |
| .confidence-fill{height:100%;background:var(--teal);border-radius:99px;} | |
| .confidence-value{font-family:var(--font-mono);font-size:13px;font-weight:600;color:var(--teal-deep);} | |
| /* molecules */ | |
| .mol-row{display:flex;gap:16px;margin-top:6px;flex-wrap:wrap;} | |
| .mol-card{ | |
| flex:1; | |
| min-width:120px; | |
| border:1px solid var(--line); | |
| border-radius:10px; | |
| padding:10px; | |
| background:var(--paper-dim); | |
| text-align:center; | |
| } | |
| .mol-card svg{max-width:100%;width:100%;height:auto;display:block;margin:0 auto;} | |
| .mol-card .mol-label{font-size:11.5px;color:var(--text-soft);margin-top:4px;font-weight:500;} | |
| /* grid 2 cards */ | |
| .grid-2{display:grid;grid-template-columns:1.1fr 1fr;gap:20px;} | |
| .card{ | |
| border:1px solid var(--line); | |
| border-radius:14px; | |
| padding:clamp(16px,3vw,22px); | |
| background:var(--paper); | |
| } | |
| .card h3{ | |
| font-family:var(--font-display); | |
| font-size:clamp(14px,3vw,16px); | |
| font-weight:600; | |
| margin-bottom:14px; | |
| } | |
| /* reasons */ | |
| .reason-item{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);} | |
| .reason-item:last-child{border-bottom:none;padding-bottom:0;} | |
| .reason-icon{ | |
| width:28px;height:28px;border-radius:7px; | |
| background:var(--teal-tint); | |
| color:var(--teal-deep); | |
| display:flex;align-items:center;justify-content:center; | |
| flex-shrink:0; | |
| } | |
| .reason-icon svg{width:14px;height:14px;} | |
| .reason-text .t{font-size:clamp(12.5px,3vw,13.5px);font-weight:600;margin-bottom:2px;} | |
| .reason-text .d{font-size:clamp(11.5px,2.5vw,12.5px);color:var(--text-soft);line-height:1.5;} | |
| /* feature bars */ | |
| .feat-row{display:flex;align-items:center;gap:8px;padding:8px 0;} | |
| .feat-name{ | |
| font-family:var(--font-mono); | |
| font-size:clamp(10px,2vw,11.5px); | |
| /* fluid width instead of fixed */ | |
| width:clamp(90px,20vw,150px); | |
| flex-shrink:0; | |
| color:var(--ink); | |
| word-break:break-word; | |
| line-height:1.3; | |
| } | |
| .feat-track{flex:1;height:16px;background:var(--paper-dim);border-radius:4px;min-width:40px;} | |
| .feat-fill{height:100%;border-radius:4px;} | |
| .feat-fill.pos{background:var(--risk-high);} | |
| .feat-fill.neg{background:var(--teal);} | |
| .feat-val{font-family:var(--font-mono);font-size:11px;font-weight:600;width:44px;text-align:right;flex-shrink:0;} | |
| .mol-note{ | |
| margin-top:14px; | |
| padding:12px 14px; | |
| background:var(--paper-dim); | |
| border-radius:9px; | |
| font-size:clamp(11.5px,2.5vw,12px); | |
| color:var(--text-soft); | |
| line-height:1.6; | |
| } | |
| .mol-note strong{color:var(--ink);} | |
| .frag-chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;} | |
| .frag-chip{ | |
| font-family:var(--font-mono); | |
| font-size:clamp(10.5px,2vw,11.5px); | |
| padding:5px 10px; | |
| border-radius:7px; | |
| background:var(--mint-tint); | |
| border:1px solid #B7EEDF; | |
| color:var(--teal-deep); | |
| } | |
| /* side effects */ | |
| .se-tags{display:flex;flex-wrap:wrap;gap:8px;} | |
| .se-tag{ | |
| font-size:clamp(11.5px,2.5vw,12.5px); | |
| padding:7px 12px; | |
| border-radius:8px; | |
| background:var(--risk-mod-tint); | |
| color:#8A6213; | |
| font-weight:500; | |
| border:1px solid #EFE0BD; | |
| } | |
| /* clinical ranking */ | |
| .rank-row{display:flex;align-items:center;gap:8px;padding:7px 0;} | |
| .rank-name{ | |
| font-size:clamp(11.5px,2.5vw,12.5px); | |
| font-weight:500; | |
| /* fluid width */ | |
| width:clamp(110px,25vw,200px); | |
| flex-shrink:0; | |
| line-height:1.3; | |
| } | |
| .rank-track{flex:1;height:8px;background:var(--paper-dim);border-radius:99px;min-width:30px;} | |
| .rank-fill{height:100%;background:var(--mint);border-radius:99px;} | |
| .rank-val{font-family:var(--font-mono);font-size:11px;width:40px;text-align:right;color:var(--text-soft);flex-shrink:0;} | |
| /* pharmacist sheet */ | |
| .sheet-card{ | |
| border:1.5px dashed var(--line-strong); | |
| border-radius:14px; | |
| padding:clamp(16px,4vw,24px); | |
| background:var(--paper-dim); | |
| } | |
| .sheet-header{ | |
| display:flex; | |
| justify-content:space-between; | |
| align-items:flex-start; | |
| margin-bottom:18px; | |
| gap:14px; | |
| flex-wrap:wrap; | |
| } | |
| .sheet-header h3{font-family:var(--font-display);font-size:clamp(15px,3.5vw,18px);font-weight:600;} | |
| .sheet-header .sub{font-size:12px;color:var(--text-soft);margin-top:4px;} | |
| .export-btn{ | |
| font-family:var(--font-body); | |
| font-size:13px;font-weight:600; | |
| color:var(--teal-deep); | |
| background:var(--paper); | |
| border:1.5px solid var(--teal); | |
| padding:9px 16px; | |
| border-radius:8px; | |
| cursor:pointer; | |
| display:flex;align-items:center;gap:7px; | |
| transition:background .15s; | |
| white-space:nowrap; | |
| min-height:44px; | |
| } | |
| .export-btn:hover{background:var(--teal-tint);} | |
| .export-btn svg{width:14px;height:14px;} | |
| .sheet-grid{display:grid;grid-template-columns:repeat(4, 1fr);gap:12px;} | |
| .sheet-stat{ | |
| background:var(--paper); | |
| border:1px solid var(--line); | |
| border-radius:10px; | |
| padding:clamp(10px,3vw,14px); | |
| } | |
| .sheet-stat .label{ | |
| font-size:clamp(9.5px,2vw,10.5px); | |
| text-transform:uppercase; | |
| letter-spacing:.05em; | |
| color:var(--text-soft); | |
| font-weight:600; | |
| margin-bottom:6px; | |
| line-height:1.3; | |
| } | |
| .sheet-stat .value{ | |
| font-family:var(--font-display); | |
| font-size:clamp(15px,3.5vw,18px); | |
| font-weight:600; | |
| } | |
| .sheet-stat .value.risk-level{text-transform:capitalize;} | |
| .sheet-stat .value.low{color:var(--risk-low);} | |
| .sheet-stat .value.modere{color:var(--risk-mod);} | |
| .sheet-stat .value.eleve{color:var(--risk-high);} | |
| /* footer */ | |
| .footer{ | |
| border-top:1px solid var(--line); | |
| padding-top:18px; | |
| margin-top:36px; | |
| display:flex; | |
| justify-content:space-between; | |
| align-items:center; | |
| font-size:clamp(10.5px,2vw,11.5px); | |
| color:var(--text-soft); | |
| flex-wrap:wrap; | |
| gap:10px; | |
| } | |
| .footer .left{display:flex;gap:14px;flex-wrap:wrap;} | |
| /* loading */ | |
| .loading-row{display:flex;align-items:center;gap:10px;color:var(--text-soft);font-size:13.5px;padding:20px 0;} | |
| .spinner{ | |
| width:16px;height:16px;border-radius:50%; | |
| border:2px solid var(--line-strong); | |
| border-top-color:var(--teal); | |
| animation:spin .7s linear infinite; | |
| } | |
| @keyframes spin{to{transform:rotate(360deg);}} | |
| /* ββββββββββββββββββββββββββββββββββββββ | |
| RESPONSIVE β Tablette (β€ 860px) | |
| ββββββββββββββββββββββββββββββββββββββ */ | |
| @media (max-width:860px){ | |
| .input-grid{grid-template-columns:1fr;} | |
| .swap-col{ | |
| display:flex; | |
| height:auto; | |
| justify-content:flex-start; | |
| } | |
| .swap-btn{transform:rotate(90deg);} | |
| .swap-btn:hover{transform:rotate(270deg);} | |
| .result-hero{grid-template-columns:1fr;} | |
| .gauge-col{flex-direction:row;justify-content:flex-start;gap:16px;} | |
| .grid-2{grid-template-columns:1fr;} | |
| .sheet-grid{grid-template-columns:repeat(2,1fr);} | |
| .mol-row{flex-direction:column;} | |
| .mol-card{min-width:unset;} | |
| } | |
| /* ββββββββββββββββββββββββββββββββββββββ | |
| RESPONSIVE β Mobile (β€ 600px) | |
| ββββββββββββββββββββββββββββββββββββββ */ | |
| @media (max-width:600px){ | |
| .app{padding:0 14px 60px;} | |
| /* Topbar */ | |
| .topbar{padding:14px 0 12px;} | |
| .proto-tag{font-size:9.5px;padding:4px 8px;} | |
| /* Title */ | |
| .page-title{font-size:20px;} | |
| /* Input */ | |
| .input-card{padding:14px;border-radius:12px;} | |
| .swap-col{display:none;} | |
| .input-footer{flex-direction:column;align-items:stretch;gap:10px;} | |
| .sample-pairs{order:2;} | |
| .analyze-btn{ | |
| width:100%; | |
| justify-content:center; | |
| order:1; | |
| font-size:15px; | |
| padding:14px; | |
| } | |
| .sample-chip{font-size:10px;padding:5px 8px;} | |
| /* Results */ | |
| .result-hero{padding:16px 14px;border-radius:12px;} | |
| .section-title{font-size:16px;} | |
| .gauge-col{flex-direction:row;gap:12px;flex-wrap:wrap;} | |
| /* Cards */ | |
| .card{padding:14px;border-radius:12px;} | |
| .sheet-card{padding:14px;border-radius:12px;} | |
| /* Feature bars β collapse label above bar */ | |
| .feat-row{flex-wrap:wrap;gap:6px;} | |
| .feat-name{width:100%;font-size:10.5px;} | |
| .feat-track{min-width:0;} | |
| .feat-val{width:auto;} | |
| /* Rank rows */ | |
| .rank-row{flex-wrap:wrap;} | |
| .rank-name{width:100%;font-size:12px;} | |
| .rank-track{min-width:0;} | |
| /* Sheet grid β 2 cols */ | |
| .sheet-grid{grid-template-columns:1fr 1fr;gap:10px;} | |
| .sheet-header{flex-direction:column;align-items:stretch;} | |
| .export-btn{width:100%;justify-content:center;} | |
| /* Confidence */ | |
| .confidence-row{flex-wrap:wrap;gap:8px;} | |
| .confidence-bar{min-width:100%;order:3;} | |
| /* Footer */ | |
| .footer{flex-direction:column;align-items:flex-start;gap:6px;} | |
| } | |
| /* ββββββββββββββββββββββββββββββββββββββ | |
| RESPONSIVE β TrΓ¨s petit mobile (β€ 380px) | |
| ββββββββββββββββββββββββββββββββββββββ */ | |
| @media (max-width:380px){ | |
| .app{padding:0 10px 50px;} | |
| .page-title{font-size:18px;} | |
| .sheet-grid{grid-template-columns:1fr;} | |
| .drug-pill{font-size:11px;padding:5px 8px;} | |
| .result-headline{font-size:16px;} | |
| .proto-tag{display:none;} | |
| } | |
| /* ββββββββββββββββββββββββββββββββββββββ | |
| ACCESSIBILITΓ | |
| ββββββββββββββββββββββββββββββββββββββ */ | |
| :focus-visible{outline:2px solid var(--teal);outline-offset:2px;} | |
| /* Touch : agrandir zones cliquables */ | |
| @media (pointer:coarse){ | |
| .suggestion-item{min-height:48px;} | |
| .sample-chip{min-height:40px;} | |
| .swap-btn{min-width:48px;min-height:48px;} | |
| .analyze-btn{min-height:52px;} | |
| .export-btn{min-height:48px;} | |
| } | |
| @media (prefers-reduced-motion:reduce){ | |
| *{transition:none ;animation:none ;} | |
| } | |
| /* ββββββββββββββββββββββββββββββββββββββ | |
| PRINT β Fiche pharmacien A4 | |
| ββββββββββββββββββββββββββββββββββββββ */ | |
| .print-header{display:none;} | |
| .print-footer{display:none;} | |
| @media print{ | |
| @page{size:A4;margin:16mm 14mm;} | |
| body{background:#fff;} | |
| .app{max-width:100%;padding:0;margin:0;} | |
| .topbar,.disclaimer,.page-title,.page-subtitle, | |
| .input-card,.suggestions,.error-banner,.export-btn,.footer{ | |
| display:none ; | |
| } | |
| button,.swap-btn{display:none ;} | |
| .print-header{ | |
| display:flex; | |
| align-items:center; | |
| flex-wrap:wrap; | |
| gap:14px 22px; | |
| padding-bottom:14px; | |
| margin-bottom:18px; | |
| border-bottom:2px solid var(--ink); | |
| page-break-after:avoid; | |
| page-break-inside:avoid; | |
| } | |
| .print-logo{height:34px;} | |
| .print-header-text{flex:1;min-width:220px;} | |
| .print-header-text h1{ | |
| font-family:var(--font-display); | |
| font-size:18px;font-weight:600;color:var(--ink); | |
| } | |
| .print-meta{font-size:10.5px;color:var(--text-soft);margin-top:2px;} | |
| .print-pair{ | |
| font-family:var(--font-mono);font-size:12px;font-weight:600; | |
| color:var(--ink);display:flex;align-items:center;gap:8px; | |
| } | |
| .print-x{color:var(--text-soft);} | |
| .print-risk-badge{ | |
| font-size:11px;font-weight:700;padding:5px 11px; | |
| border-radius:99px;text-transform:capitalize; | |
| border:1.3px solid currentColor; | |
| } | |
| .print-risk-badge.risk-low{color:var(--risk-low);} | |
| .print-risk-badge.risk-modere{color:var(--risk-mod);} | |
| .print-risk-badge.risk-eleve{color:var(--risk-high);} | |
| .print-footer{ | |
| display:block;margin-top:22px;padding-top:12px; | |
| border-top:1px solid var(--line-strong); | |
| font-size:10px;line-height:1.5;color:var(--text-soft); | |
| } | |
| .print-footer strong{color:var(--ink);} | |
| .results{gap:16px;} | |
| .section-title{font-size:14.5px;margin-top:4px;margin-bottom:8px;page-break-after:avoid;} | |
| section{page-break-inside:avoid;} | |
| .result-hero,.card,.sheet-card,.mol-card{ | |
| border:1px solid #B9C4C4 ; | |
| box-shadow:none ; | |
| page-break-inside:avoid; | |
| } | |
| .result-hero{ | |
| padding:18px;gap:20px; | |
| grid-template-columns:140px 1fr ; | |
| } | |
| .sheet-card{border-style:solid ;background:#fff ;} | |
| .card{padding:16px;} | |
| /* RΓ©imposer la mise en page large pour A4 */ | |
| .gauge-col{flex-direction:column ;} | |
| .mol-row{flex-direction:row ;} | |
| .grid-2{grid-template-columns:1fr 1fr ;} | |
| .sheet-grid{grid-template-columns:repeat(4,1fr) ;} | |
| .feat-row{flex-wrap:nowrap ;} | |
| .feat-name{width:150px ;} | |
| .rank-row{flex-wrap:nowrap ;} | |
| .rank-name{width:200px ;} | |
| .confidence-row{flex-wrap:nowrap ;} | |
| .confidence-bar{min-width:auto ;order:unset ;} | |
| .gauge-col svg{width:120px;height:120px;} | |
| .risk-badge,.print-risk-badge,.feat-fill,.confidence-fill, | |
| .rank-fill,.se-tag,.result-hero::before{ | |
| -webkit-print-color-adjust:exact; | |
| print-color-adjust:exact; | |
| color-adjust:exact; | |
| } | |
| .reason-item,.feat-row,.rank-row{page-break-inside:avoid;} | |
| a{color:inherit;text-decoration:none;} | |
| } | |