:root{color-scheme:dark;--bg:#050b20;--blue:#45ccff;--purple:#9772ff;--muted:#abb8d2;--line:#ffffff20}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 80% 10%,#19215380,transparent 40%),radial-gradient(ellipse at 12% 48%,#122f4580,transparent 30%),var(--bg);color:#edf3ff;font-family:system-ui,-apple-system,"Noto Sans JP","Yu Gothic",sans-serif;line-height:1.8}body:before{content:"";position:fixed;inset:0;pointer-events:none;background-image:radial-gradient(#8cb4da70 1px,transparent 1px);background-size:79px 91px;opacity:.25;z-index:-1}a{color:inherit;text-decoration:none}a:hover{color:var(--blue)}button,input{font:inherit}button,a.primary,a.secondary{cursor:pointer}button{color:#dce8ff;border:1px solid #788cb749;border-radius:10px;background:#101e38;padding:8px 14px}button:hover{border-color:var(--blue)}button[aria-pressed=true]{background:#45ccff20;border-color:var(--blue);color:#9be5ff}:focus-visible{outline:3px solid var(--blue);outline-offset:4px}header{max-width:1440px;margin:auto;padding:25px 5%;display:flex;align-items:center;gap:35px;border-bottom:1px solid var(--line)}.brand{font-size:17px;letter-spacing:2px;white-space:nowrap}.brand strong{color:var(--blue)}.brand-icon{display:inline-grid;place-items:center;width:35px;height:35px;border:1px solid #45ccff70;border-radius:10px;color:var(--blue);margin-right:9px}header nav{display:flex;gap:30px;margin-left:auto;font-size:14px}.draft{font-size:11px;border:1px solid #9772ff60;padding:3px 9px;border-radius:20px;color:#c5baff}.crumb{font-size:12px;color:var(--muted);margin:25px 0 35px}main{max-width:1200px;margin:auto;padding:0 28px 70px}.hero{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;min-height:470px;margin:10px 0 70px}.eyebrow{font-size:11px;letter-spacing:3px;color:var(--blue);font-weight:600}h1{font-size:clamp(32px,4vw,57px);line-height:1.4;letter-spacing:.01em;margin:18px 0}h1 em{font-style:normal;background:linear-gradient(90deg,#8deaff,#b99dff);background-clip:text;color:transparent}h2{font-size:23px;line-height:1.5}p{margin:12px 0}.lead{font-size:17px;color:#c3cee2;line-height:1.9;margin:20px 0 30px}.primary,.secondary{display:inline-block;padding:12px 22px;border-radius:10px;font-size:14px}.primary{background:linear-gradient(110deg,#45ccff,#8ca9ff);color:#07142a;font-weight:700;border:0}.primary:hover{color:#07142a;background:#a3e9ff}.secondary{border:1px solid #8198c045;margin-left:12px}.muted,.date{color:var(--muted);font-size:12px}.hero .muted{margin-top:24px}.orbital{position:relative;height:420px;display:grid;place-items:center;overflow:hidden}.planet{height:200px;width:200px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 30% 25%,#45ccff35,#142446 40%,#070e27 70%);box-shadow:inset 0 0 35px #9772ff50,0 0 85px #45ccff20;border:1px solid #45ccff60}.planet span{letter-spacing:9px;color:#b0dfff;font-weight:200;font-size:25px;margin-left:9px}.orbit{position:absolute;border:1px solid #45ccff38;border-radius:50%;height:260px;width:420px;transform:rotate(-32deg)}.o2{transform:rotate(40deg);border-color:#9772ff50;height:140px}.satellite{position:absolute;background:#15263e;border:1px solid #ffffff25;padding:5px 12px;border-radius:8px;font-size:9px;letter-spacing:2px;color:#d1eaff}.s1{left:10%;top:25%}.s2{right:5%;bottom:26%}.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.section-head h2{margin:0}.section-head>a{font-size:13px;color:var(--muted)}.panel,.card{background:linear-gradient(125deg,#1d2c483d,#11172e80);border:1px solid var(--line);border-radius:18px;backdrop-filter:blur(15px)}.search{padding:25px;margin-bottom:30px}.search label{display:block;font-size:13px;margin-bottom:10px;color:#c6d4eb}input{display:block;width:100%;padding:15px 18px;background:#070e21;border:1px solid #526b9960;color:white;border-radius:10px}input::placeholder{color:#91a1bc}.filters{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.filters button{font-size:12px}.resultline{display:flex;align-items:center;justify-content:space-between;font-size:13px}.resultline button{background:transparent;border:0;color:var(--blue);font-size:12px}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.card{padding:25px;display:flex;flex-direction:column;min-width:0}.card h2{margin:10px 0}.card p{font-size:14px;color:#c4cfe2}.card small{color:var(--muted);margin-top:15px}.monogram{height:43px;width:43px;display:grid;place-items:center;background:#45ccff12;border:1px solid #45ccff36;border-radius:12px;color:#9de5ff;font-size:18px}.card:nth-child(even) .monogram{color:#c7b5ff;border-color:#9772ff50;background:#9772ff12}.tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:auto;padding-top:15px}.tags span{font-size:10px;color:#bfcee8;background:#8ca9ff12;padding:3px 8px;border-radius:5px}.card-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:20px;border-top:1px solid var(--line);margin-top:15px;font-size:12px}.card-actions button{font-size:11px;padding:7px 10px}.detail-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:25px;margin-top:35px}.prose{padding:30px;overflow-wrap:anywhere}.prose h2{margin:26px 0 12px}.prose h2:first-child{margin-top:0}.prose p,.prose li{color:#cbd6e8;font-size:15px}.prose a{color:var(--blue);text-decoration:underline;text-underline-offset:4px}.notice{padding:15px;background:#9772ff16;border-left:3px solid var(--purple)}.date{margin-top:40px}footer{max-width:1200px;margin:auto;padding:30px 28px 220px;border-top:1px solid var(--line);font-size:13px;color:#c1cce0}footer nav{display:flex;flex-wrap:wrap;gap:22px;margin:25px 0}.tray{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);width:min(900px,calc(100% - 32px));background:#0e1935f2;border:1px solid #6e98c65c;box-shadow:0 12px 65px #0008;backdrop-filter:blur(20px);padding:15px 20px;border-radius:16px;display:grid;grid-template-columns:1fr auto;gap:5px 15px;z-index:5}.tray strong{font-size:12px}.tray-actions{display:flex;align-items:center;gap:10px}.tray .primary{padding:8px 15px}.tray button{font-size:11px}.tray #feedback{font-size:11px;color:#b7c6e1;grid-column:1/-1;margin:0}.tray #selected{display:flex;flex-wrap:wrap;gap:5px}.tray #selected button{padding:2px 6px;margin-top:4px}.table-scroll{overflow:auto;border:1px solid var(--line);border-radius:16px;margin:30px 0;max-width:100%}table{border-collapse:collapse;width:100%;min-width:660px;background:#12213a40;table-layout:fixed}caption{text-align:left;padding:15px;font-size:12px}th,td{padding:17px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);text-align:left;vertical-align:top;font-size:13px;overflow-wrap:anywhere}th{color:#cceeff;background:#172d4250}td a{color:var(--blue);text-decoration:underline}.skip{position:fixed;left:10px;top:-100px;padding:10px;background:#123;z-index:10}.skip:focus{top:10px}[hidden]{display:none!important}@media(max-width:760px){header{padding:18px 20px;flex-wrap:wrap;gap:12px}.brand{font-size:14px}header nav{order:3;width:100%;margin:0;gap:22px}.draft{margin-left:auto}main{padding:0 20px 45px}.hero{grid-template-columns:1fr;margin-bottom:35px;min-height:auto}.hero h1{font-size:39px}.orbital{height:260px;margin-top:20px}.planet{width:150px;height:150px}.orbit{width:290px;height:170px}.o2{height:100px}.cards{grid-template-columns:1fr}.detail-grid{grid-template-columns:1fr}.search,.card,.prose{padding:20px}.section-head{gap:15px}.section-head h2{font-size:20px}.tray{bottom:10px;padding:12px;gap:8px;grid-template-columns:1fr}.tray-actions{justify-content:space-between}.tray #feedback{grid-column:1}.tray-actions>*{flex:1;text-align:center}.lead{font-size:15px}footer{padding-bottom:265px}.secondary{margin-left:4px}.filters button{padding:7px 10px}.crumb{margin:18px 0 25px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Keep long names and the comparison controls usable on short viewports. */
.tray{max-height:40dvh;overflow:auto}.tray button{max-width:100%;overflow-wrap:anywhere}main{scroll-margin-top:16px}a{overflow-wrap:anywhere}

/* Phase5: compact cards, readable labels and measured tray reservation. */
:root{--tray-space:calc(45dvh + 48px + env(safe-area-inset-bottom))}
html{scroll-padding-bottom:var(--tray-space)}body{font-size:16px;line-height:1.65;padding-bottom:var(--tray-space)}
.card{padding:20px;gap:4px;background:#101c34}.card small,.muted,.date,.tags span{color:#c4cfe2;font-size:14px}.card p,.prose p,.prose li,th,td{font-size:16px}.card h2{font-size:22px;margin:4px 0}.card small{margin-top:6px}.card p{margin:5px 0}.card-summary{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.card-uses{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tags{margin-top:0;padding-top:8px}.tags span{background:#1b2b48;padding:4px 8px}.card-selection{font-size:14px!important;color:#c4cfe2!important}.card.is-selected{border-color:#45ccff;box-shadow:0 0 0 1px #45ccff}.card.is-selected .card-selection{color:#9be5ff!important;font-weight:700}.card-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px;padding-top:12px;font-size:16px}.card-actions button{grid-column:1/-1}
button,input,.card-actions a,.primary,.secondary{min-height:44px;min-width:44px}button,.filters button,.card-actions button,.tray button,.tray strong,.search label,.resultline,.tray #feedback{font-size:16px}.card-actions a{display:flex;align-items:center}.filters button{padding:8px 12px}.tray #selected button{min-height:44px;padding:6px 10px;margin-top:6px}.tray #selected{min-width:0}.tray{bottom:calc(12px + env(safe-area-inset-bottom));max-height:45dvh;padding:12px 16px}.tray-actions{flex-wrap:wrap}.tray .primary{padding:8px 15px}button:disabled{opacity:1;color:#b6c3d9;background:#18243c;border-color:#73849f;cursor:not-allowed}.tray button.primary:disabled{color:#b6c3d9}footer{padding-bottom:32px}header nav{font-size:16px}.flow{color:#c4cfe2}.cards{grid-template-columns:repeat(3,minmax(0,1fr))}.card a,.tray button{overflow-wrap:anywhere}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #45ccff;outline-offset:3px}
@media(max-width:1000px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.cards{grid-template-columns:1fr}.card{padding:18px}.tray{width:calc(100% - 24px)}.card-actions{grid-template-columns:1fr 1fr}}

.lead{font-size:16px}

/* Phase6: remove vertical duplication; retain full plan information. */
.card{padding:18px;gap:6px}
.card-header{display:flex;align-items:flex-start;gap:10px;min-width:0}
.card .monogram{width:40px;height:40px;flex:0 0 40px}
.card-heading{min-width:0;flex:1}
.card .card-heading h2{font-size:20px;line-height:1.3;margin:0}
.card .provider{display:block;font-size:14px;margin:2px 0 0}
.card .card-summary{font-size:16px;line-height:1.6;margin:0;-webkit-line-clamp:2}
.card .tags{margin:0;padding:0}
.card-meta{margin:0}
.card .card-meta p{font-size:14px;line-height:1.6;margin:0}
.card-actions{grid-template-columns:52px 68px minmax(0,1fr);gap:8px;margin-top:0;padding-top:8px;font-size:14px}
.card-actions a{justify-content:center;min-height:44px}
.card-actions button{grid-column:auto;font-size:14px;padding:6px;min-height:44px;min-width:0}
.card-actions>*{min-width:0}
@media(max-width:600px){.card{padding:16px}.card-actions{grid-template-columns:52px 68px minmax(0,1fr)}}

/* v9: compact disclosure tray, with actual-height content reservation. */
:root{--tray-space:0px}.tray{display:block;padding:10px 12px;max-height:45dvh;overflow:visible;width:min(680px,calc(100% - 24px))}.tray-bar{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px}.tray-bar strong{font-size:16px;line-height:1.4;white-space:nowrap}.tray-bar button{min-height:44px;font-size:16px;padding:8px 12px;white-space:nowrap}.tray #tray-detail{border-top:1px solid var(--line);margin-top:10px;padding-top:8px;max-height:calc(45dvh - 86px);overflow:auto}.tray #selected{gap:6px}.tray #selected button{margin:0}.tray #feedback{font-size:14px;line-height:1.5;margin:8px 0}.tray [data-clear]{font-size:14px;min-height:44px}.tray #selected button{font-size:14px;min-height:44px}.tray-bar .primary{margin:0}body{padding-bottom:var(--tray-space)}
@media(max-width:600px){.tray{bottom:calc(8px + env(safe-area-inset-bottom))}.tray-bar{gap:6px}.tray-bar strong{font-size:14px}.tray-bar button{padding:8px 10px}.tray #tray-detail{max-height:calc(45dvh - 90px)}}
