/* KEYS Design System Ver.0.1 — authoritative tokens and shared components. */
:root{--color-navy:#142A4A;--color-bg:#FFFFFF;--color-surface:#F7F8FA;--color-muted:#637185;--color-border:#E5E8ED;--color-success-bg:#FFF8DF;--color-success:#F4B942;--color-failure-bg:#EDF6FF;--color-failure:#4B96E6;--color-play-bg:#FCEEF4;--color-play:#E75C8D;--color-self-bg:#EAF8F3;--color-self:#42A987;--color-deep-bg:#F3EEFF;--color-deep:#8A68D8;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:36px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--font-title:30px;--font-section:22px;--font-item:17px;--font-body:15px;--font-caption:12px;--border:1px solid var(--color-border);--navy:var(--color-navy);--bg:var(--color-bg);--line:var(--color-border);--muted:var(--color-muted);--yellow:var(--color-success);--green:var(--color-self)}
body{font-family:-apple-system,BlinkMacSystemFont,'Hiragino Kaku Gothic ProN','Yu Gothic',Meiryo,sans-serif;background:var(--color-surface);color:var(--color-navy);font-size:var(--font-body);line-height:1.8}#app{max-width:440px}.phone{width:100%;background:var(--color-bg);box-shadow:none}main,.screen-book main.book{padding:var(--space-lg) 22px 120px}.heading{margin:0 0 var(--space-lg)}.heading h1,.welcome h1,.manual h1,.record-review h1{font-size:var(--font-title)!important;font-weight:750;line-height:1.5;letter-spacing:-.03em}.heading p,.heading p.muted{font-size:var(--font-body)!important;color:var(--color-muted);margin-top:var(--space-sm)}h2,.section-heading h2,.section-head h2,.manual h2{font-size:var(--font-section);font-weight:700;line-height:1.55}h3,.record-row strong{font-size:var(--font-item);font-weight:600}small,.caption,.muted,.viz-note,.manual-note,.manual small{font-size:var(--font-caption)}p{line-height:1.8}.caption,.muted,.viz-note{color:var(--color-muted)}
.phone>header.ds-header{display:flex;height:64px;position:relative;align-items:center;justify-content:center;gap:var(--space-md);padding:var(--space-md) 22px;background:var(--color-bg);border-bottom:var(--border);color:var(--color-navy)}.ds-header>strong{font-size:var(--font-item);font-weight:650}.ds-header .ds-back{position:absolute;left:var(--space-md);top:8px;display:grid;place-items:center;min-width:44px;min-height:48px;background:none;font-size:30px;border-radius:var(--radius-sm)}.ds-header .ds-brand{font-size:28px;letter-spacing:.02em}.screen-home .ds-header{justify-content:flex-start}.screen-book .ds-header{display:none}.manual-brand{display:none}.ds-section-header,.section-heading,.section-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);margin:var(--space-xl) 0 var(--space-md)}
.phone nav.ds-bottom-nav{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;bottom:0;width:100%;max-width:440px;min-height:76px;padding:8px 8px max(12px,env(safe-area-inset-bottom));background:var(--color-bg);border-top:var(--border);box-shadow:none;z-index:30}.ds-bottom-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:100%;min-height:52px;color:var(--color-muted);background:none}.ds-bottom-nav button>span{width:24px;height:24px}.ds-bottom-nav svg{width:24px;height:24px;stroke-width:1.6}.ds-bottom-nav small{font-size:var(--font-caption);font-weight:500}.phone .ds-bottom-nav button.current{color:var(--color-navy);background:var(--color-surface);border-radius:var(--radius-sm)}.ds-bottom-nav button.current svg{stroke-width:2.2}.ds-bottom-nav button.current small{font-weight:700}
.phone .primary,.phone .secondary,.manual .manual-primary,.manual .manual-more{min-height:50px;border-radius:var(--radius-md);font-size:16px!important;font-weight:650;padding:12px 18px;box-shadow:none;background:var(--color-navy);border:1px solid var(--color-navy);color:white!important}.phone .secondary,.manual .manual-more{background:var(--color-bg);color:var(--color-navy)!important}.text-button,.section-heading>button,.section-head>button{font-size:14px;min-height:44px;background:none;color:var(--color-navy)}.wide{margin-top:var(--space-lg)}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--color-failure);outline-offset:3px}
.ds-list-item{display:flex;gap:var(--space-md);align-items:center;width:100%;text-align:left;padding:18px 0;border:0;border-bottom:var(--border);background:var(--color-bg);border-radius:0;min-height:80px}.ds-list-icon{display:grid;place-items:center;width:44px;height:44px;flex-shrink:0;border-radius:var(--radius-md);background:var(--color-play-bg);color:var(--color-play)}.ds-list-icon .manual-icon{width:28px;height:28px}.ds-list-copy{flex:1;min-width:0}.ds-list-copy strong{display:block;font-size:var(--font-item);font-weight:650}.ds-list-copy small{display:block;color:var(--color-muted);font-size:var(--font-caption);margin-top:4px}.ds-list-item>span:last-child{font-size:24px}.ds-play-list{margin-top:var(--space-md)}
.phone .choices{display:grid;gap:12px}.phone .choice,.phone .ds-choice{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);min-height:60px;padding:16px 18px;font-size:var(--font-body);line-height:1.8;text-align:left;border:var(--border);border-radius:var(--radius-md);background:var(--color-bg);box-shadow:none;font-weight:500}.phone .choice.selected{background:var(--color-surface);border-color:var(--color-navy);box-shadow:inset 0 0 0 1px var(--color-navy)}.phone .choice i{font-style:normal;color:var(--color-muted);flex-shrink:0}.phone .choice.selected i{color:var(--color-navy)}.choice-description{display:block;font-size:var(--font-caption);color:var(--color-muted)}.question-bubble{display:block;margin:var(--space-md) 0}.question-bubble>.coach-avatar{display:none}.phone .question-bubble p{border:0;border-radius:0;background:none;padding:0;color:var(--color-navy);font-size:28px;font-weight:750;line-height:1.55;letter-spacing:-.03em}.selection-help,.question-note{font-size:14px;color:var(--color-muted);margin:12px 0 20px}.screen-interview main{padding-bottom:190px}.screen-interview .answer-bar{bottom:76px;background:var(--color-bg);border-top:var(--border);padding:12px 22px;max-width:440px;width:100%;z-index:25}.answer-bar .primary{margin:0}.previous-answer span{background:var(--color-surface);color:var(--color-muted);font-size:14px;border-radius:var(--radius-md)}.conversation-flow{margin-bottom:var(--space-lg)}.conversation-flow summary{font-size:var(--font-caption);color:var(--color-muted)}
.reference-home-hero{padding-top:0}.reference-home-hero:before{display:none}.home-greeting{color:var(--color-navy);margin-bottom:var(--space-md)}.home-greeting p{font-size:21px;font-weight:700;line-height:1.6}.home-greeting button{color:var(--color-navy)}.court-banner{height:100px;min-height:0;border-radius:var(--radius-md);padding:var(--space-md);margin-bottom:var(--space-lg)}.court-banner>span{font-size:var(--font-caption);line-height:1.65;padding:8px 12px;border-radius:var(--radius-sm)}.court-banner i{width:28px;height:28px}.home-record-actions{display:grid;gap:12px;margin:var(--space-md) 0 var(--space-xl)}.phone .home-record-actions button{width:100%;min-height:64px;padding:16px;display:flex;align-items:center;gap:12px;border-radius:var(--radius-md);border:1px solid transparent;box-shadow:none;font-size:var(--font-body)!important;font-weight:650;color:var(--color-navy)!important}.phone .home-record-actions button[data-quick-record="うまくいった"]{background:var(--color-success-bg);border-color:var(--color-success-bg)}.phone .home-record-actions button[data-quick-record="うまくいかなかった"]{background:var(--color-failure-bg);border-color:var(--color-failure-bg)}.home-record-actions button>span{font-size:var(--font-body);flex:1}.home-record-actions svg{width:26px;height:26px;flex-shrink:0}.home-record-actions button[data-quick-record="うまくいった"]>svg:first-child{color:var(--color-success)}.home-record-actions button[data-quick-record="うまくいかなかった"]>svg:first-child{color:var(--color-failure)}.home-recent{margin:var(--space-xl) 0}.home .discovery-card{border:var(--border);background:var(--color-deep-bg);border-radius:var(--radius-md);padding:18px;box-shadow:none}.home .discovery-card h3{font-size:var(--font-item);font-weight:600}.record-kind-cards{display:grid;gap:var(--space-md)}.phone .record-kind{border-radius:var(--radius-lg);border:0;padding:20px;min-height:164px;box-shadow:none;color:var(--color-navy)}.phone .record-kind.good{background:var(--color-success-bg)}.phone .record-kind.bad{background:var(--color-failure-bg)}.record-kind h2{font-size:var(--font-section)}.record-kind p{font-size:14px;color:var(--color-muted)}.phone .kind-face{background:none;box-shadow:none;border:0;width:40px;height:40px}.kind-face .manual-icon{width:36px;height:36px}
.ds-badge{display:inline-block;background:var(--color-surface);color:var(--color-muted);font-size:var(--font-caption);padding:3px 10px;border-radius:var(--radius-sm);font-weight:600}.manual{--ink:var(--color-navy);--muted:var(--color-muted);--line:var(--color-border);--blue:var(--color-failure);--pink:var(--color-play)}.manual-welcome h1{font-size:var(--font-title)}.manual-floor{border-radius:var(--radius-lg);padding:20px;margin-bottom:var(--space-md)}.manual-floor.play{background:var(--color-play-bg)}.manual-floor.self{background:var(--color-self-bg)}.manual-floor .ds-badge{background:var(--color-play);color:white;margin-bottom:8px}.manual-floor.self .ds-badge{background:var(--color-self)}.manual-floor strong{font-size:26px}.manual-floor .floor-art{color:var(--color-play)}.manual-floor.self .floor-art .manual-icon{color:var(--color-self)}.manual p,.manual-rank strong{font-size:var(--font-body)}.manual h2{font-size:var(--font-section)}.manual .manual-note{font-size:var(--font-caption)!important}.manual-play-list{gap:0}.manual-play-list button{border:0;border-bottom:var(--border);border-radius:0;padding:18px 0;background:white;min-height:80px}.manual .manual-play-icon{background:var(--color-play-bg);color:var(--color-play);border-radius:var(--radius-md)}.manual-play-copy strong{font-size:var(--font-item)}.manual-tabs{border:var(--border);background:var(--color-surface)}.manual-tabs button{font-size:var(--font-caption);white-space:normal;min-height:44px}.manual-tabs button.active,.manual-period .active{background:var(--color-navy)}.manual-summary{border:var(--border);border-radius:var(--radius-md);padding:20px}.manual-summary-link{border:var(--border);border-radius:var(--radius-md);padding:18px 16px;margin-bottom:12px}.manual-summary-link.up{background:var(--color-success-bg)}.manual-summary-link.down{background:var(--color-failure-bg)}.manual-summary-link.refine{background:var(--color-deep-bg)}.manual-summary-link strong{font-size:var(--font-item)}.manual-summary-link small{font-size:var(--font-caption)}.manual .manual-primary,.manual .manual-more{margin-top:var(--space-lg)}.icon-up{color:var(--color-success)}.icon-down{color:var(--color-failure)}.icon-refine,.icon-thought{color:var(--color-deep)}.rank-number{background:var(--color-success)}.manual-ranks.down .rank-number{background:var(--color-failure)}.manual-ranks.down>h2{color:var(--color-navy)}.manual-bar i{background:var(--color-play)}.manual-factor,.manual-link{background:var(--color-deep-bg);border-color:var(--color-border);border-radius:var(--radius-md)}.manual-period{background:var(--color-surface);border:var(--border)}.manual-period button{font-size:14px}.manual-thought strong{font-size:var(--font-body)}.manual-thought b{font-size:18px}.manual-empty,.ds-empty,.empty,.viz-empty{background:var(--color-surface);color:var(--color-muted);border:var(--border);border-radius:var(--radius-md);padding:20px;font-size:var(--font-body)}
.map-card,.profile-card,.escalation,.record-review .review-coach{background:var(--color-surface);border:var(--border);border-radius:var(--radius-md);box-shadow:none;padding:var(--space-md)}.record-row{background:var(--color-bg);border-radius:0;border-bottom:var(--border);padding:16px 0}.record-row small{font-size:var(--font-caption)}.record-row strong{font-size:16px}.profile-photo{background-image:none!important;background:var(--color-self-bg);display:grid;place-items:center;color:var(--color-self);border-radius:50%}.profile-photo svg{width:44px;height:44px}.profile-menu button{border-bottom:var(--border);font-size:var(--font-body);min-height:60px}.profile-overview h1{font-size:var(--font-title)}.chat .user p{background:var(--color-navy);color:white}.chat p{font-size:var(--font-body)}.suggestions button{font-size:var(--font-body);border:var(--border);border-radius:var(--radius-md);background:var(--color-bg);padding:16px}.chat-input{bottom:76px}.chat-input button{background:var(--color-navy)}.screen-coach main{padding-bottom:180px}textarea,input,select{font-size:16px;border-color:var(--color-border);border-radius:var(--radius-md)}.manual-back{min-height:48px}.manual-motto{background:var(--color-success-bg)}
@media(max-width:370px){main,.screen-book main.book{padding-left:20px;padding-right:20px}.manual h1,.heading h1{font-size:28px!important}.manual-tabs button{font-size:12px}.manual-summary-link strong{font-size:16px}.manual-rank{gap:8px}.manual-rank strong{font-size:14px}.manual-counts>span{font-size:12px}}
.manual>header.ds-header{display:flex;position:relative;align-items:center;justify-content:center;min-height:64px;margin:-24px -22px 24px;padding:16px 22px;border-bottom:var(--border);background:var(--color-bg)}.manual .ds-section-header{margin:0 0 16px}.manual .ds-section-header h2{display:flex;align-items:center;gap:12px;margin:0}.ds-ranking-list{border:var(--border);border-radius:var(--radius-md);overflow:hidden}.ds-ranking-list .manual-rank{border-radius:0;border:0;border-bottom:var(--border);margin:0}.ds-ranking-list .manual-rank:last-child{border-bottom:0}.manual-side-up .manual-heading h1,.manual-side-down .manual-heading h1,.manual-side-thought .manual-heading h1{font-size:17px!important}.manual-side-up .manual-heading,.manual-side-down .manual-heading,.manual-side-thought .manual-heading{margin-bottom:16px}@media(max-width:370px){.manual>header.ds-header{margin-left:-20px;margin-right:-20px}}
.phone .home .discovery-card:before{display:none}.phone .home .discovery-card{padding:18px 36px 18px 18px}.phone .interview-style .question-bubble{display:block;margin:0 0 16px}.phone .interview-style .question-bubble>.coach-avatar{display:none}.phone .interview-style .question-bubble p{font-size:28px!important;font-weight:750;background:none;padding:0;line-height:1.55}.phone .interview-style .choices,.phone .interview-style .selection-help,.phone .interview-style .question-note{margin-left:0}.phone .interview-style .answer-bar .primary{background:var(--color-navy);color:white;border-color:var(--color-navy)}
.phone.screen-book>header.ds-header{display:none}
.phone .interview-style .question-bubble>.coach-avatar{display:none!important}.phone .interview-style .selection-help,.phone .interview-style .question-note{margin-left:0!important}.phone .choice.selected i{background:var(--color-navy);border-color:var(--color-navy);color:white}
