/* Shared phone-first UI. Character geometry remains owned by the runtime. */
:root{--ui-header:64px;--ui-nav-space:calc(88px + env(safe-area-inset-bottom));--ui-radius:20px;--p-muted:#687c85;--p-line:#e0e7e5;--p-main:#527c96}
body{padding:0;background:#f0f3f1;font-size:16px;line-height:1.6}
.p-app{max-width:1120px;border-radius:0;box-shadow:none}
.p-app .p-top{height:var(--ui-header);min-height:var(--ui-header);padding:8px 20px;gap:12px;border-radius:0;border-bottom:1px solid #dfe6e24d;background:#faf8f4ed}
.p-app .p-title{font-size:23px;letter-spacing:.025em}
.p-app .p-brand{gap:8px}.p-app .p-brand-dot{width:26px;height:25px;box-shadow:none}
.p-brand-dot:before,.p-brand-dot:after{top:12px;width:4px}.p-brand-dot:before{left:6px}.p-brand-dot:after{right:6px}
.p-app .p-head-actions{gap:2px;max-width:none}
.p-app .p-head-actions .p-account-pill{width:44px;height:44px;min-height:44px;padding:0;border:0;border-radius:50%;background:transparent;color:#5a7686}
.p-app .p-head-actions .p-account-pill:hover,.p-app .p-head-actions .p-account-pill[aria-pressed=true]{background:#e6eeee;color:#3c6477}
.p-app .p-head-actions [data-music-quick]{font-size:23px;line-height:1}
.p-app .p-main{padding:22px 20px calc(var(--ui-nav-space) + 24px);min-height:calc(100dvh - var(--ui-header));max-width:880px;margin:auto}
.p-app .p-main.is-home{height:calc(100dvh - var(--ui-header) - var(--ui-nav-space));min-height:460px;max-width:1000px;padding:4px 20px 12px;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;gap:10px}
.p-app .p-main.is-home .p-calm-scene{min-height:0;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(180px,1fr) auto;gap:4px;align-items:center}
.p-app .p-main.is-home [data-clock]{grid-area:1/1;min-width:0}
.p-app .p-main.is-home [data-clock].is-hidden{display:none}
.p-app .p-main.is-home .p-calm-scene .p-hero-pet{grid-area:2/1;width:100%;height:100%;min-height:180px;max-height:none}
.p-app .p-main.is-home .p-poke{grid-area:3/1;justify-self:center;min-height:44px;padding:7px 22px;border:1px solid #dde5e1;background:#fffefa;border-radius:24px;font-size:14px;color:#607e8a;box-shadow:none}
.p-clock{padding:4px 0 0}.p-clock-time{font-size:clamp(32px,6vw,52px);letter-spacing:.01em;line-height:1.25;font-weight:400}
.p-clock-counter{font-size:clamp(36px,8vw,62px);line-height:1.25}.has-timer .p-clock-time{font-size:16px;margin-bottom:5px;color:var(--p-muted)}
.p-clock summary{display:flex;align-items:center;justify-content:center;min-height:44px;font-size:12px;color:#71868e;list-style:none;gap:6px}
.p-clock summary:after{content:'⌄';font-size:15px}.p-clock details[open] summary:after{transform:rotate(180deg)}.p-clock summary::-webkit-details-marker{display:none}
.p-clock-tools{position:relative;z-index:5;max-width:500px;margin:auto;border:1px solid var(--p-line);padding:14px;gap:10px;box-shadow:0 8px 30px #344c5810}
.p-clock-tools input,.p-clock-tools select{font-size:16px}.p-clock-tools button{font-size:14px}
.p-app .p-capture{width:100%;max-width:640px;margin:0 auto;align-self:end}
.p-capture-form{gap:6px;padding:8px 10px 8px 12px;border-radius:24px;background:#fffefa;box-shadow:0 4px 22px #344c5808}
.p-capture-form:focus-within{border-color:#88a6b3;box-shadow:0 0 0 3px #cbdfe54d}
.p-capture-form textarea{min-height:48px;max-height:120px;resize:none;font-size:16px;line-height:1.5;padding:10px 4px}
.p-capture-send{display:grid;place-items:center;background:#527c96;color:#fff}.p-capture-mic{background:#eef2ee;color:#617e89}
.p-capture-send,.p-capture-mic{width:44px;height:44px;min-width:44px;min-height:44px;align-self:center;padding:0}
.p-capture-status{margin:6px 4px 0;min-height:0;font-size:13px}.p-capture-status:empty{display:none}
.p-app .p-nav{width:min(calc(100% - 24px),480px);bottom:calc(10px + env(safe-area-inset-bottom));height:auto;padding:5px 7px;gap:4px;border:1px solid #e1e7e2;border-radius:24px;background:#fffefaee;box-shadow:0 5px 24px #405a6410}
.p-app .p-nav button{min-height:54px;padding:5px 8px;border-radius:18px;gap:3px;font-size:12px;color:#6b7f88}
.p-app .p-nav button svg{width:21px;height:21px}.p-app .p-nav button[aria-pressed=true]{background:#e7eff1;color:#426b80}
.p-back-link{font-size:14px;min-height:44px;margin:0 0 10px;color:#5e7b8a}
.p-main .p-tool-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:visible;gap:4px;margin-bottom:22px;padding:4px;background:#edf1ed;border-radius:16px}
.p-main .p-tool-tabs:has(>button:only-child){grid-template-columns:minmax(0,1fr)}
.p-main .p-tool-tabs button{min-width:0;min-height:44px;padding:8px 4px;font-size:14px;gap:6px;border-radius:12px}
@media(max-width:480px){.p-main .p-tool-tabs svg{display:none}.p-main .p-tool-tabs button{font-size:13px}}
.p-tool-heading{margin-bottom:22px}.p-tool-heading h1,h1{font-size:26px;letter-spacing:0;font-weight:650}.p-tool-heading p{font-size:14px;margin-top:6px}
.p-panel{padding:22px;border-radius:var(--ui-radius);border:1px solid var(--p-line);box-shadow:none;margin-bottom:18px}
.p-section-title{margin-bottom:16px}.p-panel>h2{margin-bottom:16px}h2{font-size:17px;letter-spacing:0}
.p-small,.p-form-hint,.p-privacy-note,.p-profile-state{font-size:13px;line-height:1.7;color:#687c85}
.p-quiet{min-height:44px;font-size:14px}.p-primary{font-size:15px;min-height:46px;background:#527c96;border-color:#527c96;border-radius:14px;box-shadow:none}
.p-field{font-size:14px}.p-field input,.p-field select,.p-field textarea{border-radius:13px;background:#fffefa;font-size:16px}
.p-empty{border-style:solid;background:#f3f5f0;color:#687e7b;padding:30px 20px;font-size:14px}
.p-app .p-main.is-settings{max-width:1040px}.p-settings-grid{gap:18px}.p-settings-grid>.p-panel{margin:0}
.p-settings-grid{display:grid;grid-template-columns:minmax(0,1fr);align-items:start}
.p-settings-grid [data-mood-settings]{border-top:1px solid var(--p-line);padding-top:22px;margin-top:22px}
.p-settings-grid [data-mood-settings]>h2{margin-bottom:14px}.p-account-actions{gap:8px;margin:16px 0}.p-account-state{font-size:12px}
.p-account-panel .p-legal-links{display:flex;flex-wrap:wrap;gap:8px 18px;margin:18px 0 10px;padding-top:16px;border-top:1px solid var(--p-line);font-size:13px}
.p-legal-links a{display:inline-flex;min-height:44px;align-items:center}
.p-characters-panel .p-character-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));margin-top:8px}
.p-characters-panel [data-unavailable=true]{display:none}
.p-runtime-character-name,.p-profile-state{font-size:13px!important}.p-characters-panel [data-save-profile]{margin:8px 0 12px}
.p-characters-panel [data-wardrobe]{padding-top:20px;border-top:1px solid var(--p-line)}
.p-wardrobe-slot{padding:14px 0}.p-wardrobe-slot legend{font-size:14px;padding-top:12px}.p-wardrobe-slot button{font-size:13px}
.p-app .p-runtime-motion-preference label,.p-app .p-runtime-inputs label{font-size:14px}.p-app .p-runtime-select{font-size:16px}
.p-music-controls,.p-music-scenes{gap:8px}.p-music-controls button,.p-music-scenes button{font-size:14px}.p-music-controls label{flex-wrap:wrap;font-size:14px}
.p-schedule-card .p-row,.p-ai-choice .p-row,[data-mood-settings]>.p-row{display:flex;flex-wrap:wrap;gap:8px}
.p-schedule-card{padding:20px;border-radius:20px;margin:14px 0;box-shadow:none;background:#fffefa}.p-schedule-card small{font-size:13px}.p-schedule-card h2{margin:7px 0;font-size:20px}.p-schedule-card .p-row{margin-top:18px}
.p-schedule-card .p-row button{font-size:14px}.p-schedule-card [data-ack]{background:#e5eef0;border-color:#d6e3e7;color:#466e80}.p-schedule-card [data-mute]{border-color:transparent;background:transparent;color:#75858d}
.p-review-shell{padding:16px}.p-review-card{padding:22px;border-radius:24px;max-height:calc(100dvh - 32px)}
.p-review-card input,.p-review-card select,.p-review-card textarea{font-size:16px}.p-review-card .p-row{gap:8px;padding:12px 0 0;bottom:0}.p-review-card .p-row button{flex:1}
.p-ai-choice{padding:24px;border-radius:24px}.p-ai-choice h2{margin-bottom:14px}.p-ai-choice p{margin:10px 0}.p-ai-choice label{margin-top:14px;line-height:1.7}
.p-mood-dialog.p-mood-dialog-v2{width:min(460px,calc(100% - 28px));max-width:none;max-height:calc(100dvh - 40px);padding:22px;overflow-x:hidden;border-radius:26px;box-sizing:border-box;scrollbar-width:thin;color:var(--p-ink)}
.p-mood-dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.p-mood-dialog-heading h2{font-size:20px;text-align:left;margin:0;line-height:1.4}
.p-mood-music-toggle{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;min-width:44px;padding:8px 12px;border:1px solid var(--p-line);border-radius:22px;font-size:13px;background:#fffefa;flex:none}
.p-mood-music-toggle svg{width:18px;height:18px}.p-mood-music-toggle[aria-pressed=true]{background:#dfecee;border-color:#93b1bc;color:#406879}
.p-mood-music-error{color:var(--p-error);font-size:13px;line-height:1.6;margin-bottom:10px}
.p-mood-dialog-v2>.p-mood-row{gap:8px;padding:0;margin:0 0 18px}.p-mood-choice{padding:10px 6px;border-radius:17px;font-size:14px;gap:7px}.p-mood-choice:hover{background:#edf2ef}.p-mood-choice[aria-pressed=true]{background:#e4eef0;border-color:#91afb9}
.p-mood-choice[aria-pressed=true] .p-emotion-thumbnail{outline:0}.p-mood-details{padding-top:4px}.p-mood-details>summary{min-height:48px;font-size:14px;border-top:1px solid var(--p-line)}
.p-mood-search{font-size:14px;margin:8px 0 16px}.p-mood-search input{font-size:16px;min-height:46px;border-radius:14px}
.p-mood-details .p-mood-grid{gap:6px}.p-mood-details legend{font-size:13px;color:#70848d;margin:14px 0 7px}
.p-mood-footer{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:8px;margin-top:14px;padding:14px 0 0;bottom:0;background:#faf8f4;border-top:1px solid var(--p-line)}
.p-mood-footer button{font-size:14px;padding:8px 12px;min-height:44px;border-radius:14px}.p-mood-footer [data-mood-skip]{justify-self:start;border-color:transparent;background:transparent;color:#70838c}.p-mood-footer [data-mood-clear]{background:#fffefa}.p-mood-footer [data-mood-confirm]{background:#527c96;border-color:#527c96;color:white}
.p-photo-panel{padding:20px}.p-photo-panel .p-camera-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}.p-photo-panel .p-camera-actions button{font-size:15px;border-radius:14px;min-height:48px}
.p-photo-layout{gap:24px}.p-photo-panel .p-privacy-note{margin:10px 0 16px}.p-photo-canvas-wrap{border-radius:18px;background:#f0f3ef;box-shadow:none}.p-photo-controls{padding-top:8px}.p-photo-controls .p-range{font-size:14px}.p-photo-controls .p-form-actions{position:static}
.p-photo-panel .p-upload{min-height:48px;padding:8px 12px;flex-direction:row;gap:8px;border-style:solid;border-radius:14px;background:#eef3f1}.p-photo-panel .p-upload strong{font-size:15px}.p-photo-panel .p-upload-icon{font-size:22px!important;color:inherit!important}.p-photo-workspace{display:grid;gap:20px;min-width:0}.p-photo-preview{min-width:0}.p-photo-panel .p-photo-canvas-wrap{margin-top:0}.p-photo-empty{font-size:13px}.p-photo-drag-hint{font-size:13px;margin:10px 0 0}.p-photo-controls .p-form-actions button{font-size:14px}
@media(min-width:900px){.p-photo-workspace{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:start;gap:28px}.p-photo-preview{position:sticky;top:calc(var(--ui-header) + 16px)}.p-photo-controls{padding-top:0}.p-photo-panel .p-camera-actions{max-width:480px}}
.p-app .p-dock-toggle{border:1px solid #e0e7e2;font-size:13px;box-shadow:0 2px 12px #40566a08}.p-pet-size-controls{font-size:12px}.p-app .p-dock{z-index:24}
.p-app .p-dock:not(.is-collapsed){height:auto;bottom:calc(var(--ui-nav-space) + 10px)}
@media(min-width:900px){:root{--ui-header:72px}.p-app .p-top{padding-inline:40px}.p-app .p-main{padding-inline:32px}.p-app .p-main.is-home{padding-inline:40px;min-height:500px}.p-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.p-characters-panel{grid-column:2;grid-row:1/span 2}.p-settings-grid>.p-trash-panel{grid-column:1/-1}.p-mood-dialog.p-mood-dialog-v2{padding:26px}}
@media(max-width:370px){.p-app .p-top{padding-inline:12px;gap:4px}.p-app .p-brand-dot{display:none}.p-app .p-title{font-size:22px!important}.p-app .p-main{padding-inline:14px}.p-app .p-main.is-home{padding-inline:14px;min-height:390px}.p-mood-dialog.p-mood-dialog-v2{padding:18px 14px}.p-mood-dialog-heading{gap:6px}.p-mood-dialog-heading h2{font-size:18px}.p-mood-footer{gap:5px;grid-template-columns:1fr auto auto}.p-mood-footer button{font-size:13px;padding:8px}.p-mood-dialog .p-emotion-thumbnail{width:68px}.p-mood-choice{font-size:13px}.p-panel{padding:18px}.p-photo-panel{padding:14px}}
@media(orientation:landscape) and (max-height:600px){:root{--ui-header:52px;--ui-nav-space:calc(70px + env(safe-area-inset-bottom))}.p-app .p-top{height:52px;min-height:52px;padding-block:4px}.p-app .p-main.is-home{height:calc(100dvh - var(--ui-header) - var(--ui-nav-space));min-height:210px;padding:0 24px 4px;display:block}.p-app .p-main.is-home .p-calm-scene{height:100%;min-height:0;grid-template-columns:1fr 1fr;grid-template-rows:minmax(120px,1fr) 44px;gap:0 12px}.p-app .p-main.is-home [data-clock]{grid-area:1/1/3/2}.p-app .p-main.is-home .p-calm-scene .p-hero-pet{grid-area:1/2;min-height:120px;height:100%;max-height:none}.p-app .p-main.is-home .p-poke{grid-area:2/2}.p-app .p-main.is-home .p-capture{display:none}.p-clock-time{font-size:clamp(40px,8vw,78px)}.p-clock-counter{font-size:clamp(40px,8vw,76px)}.has-timer .p-clock-time{font-size:16px}.p-clock-tools{position:absolute;left:12px;right:12px;bottom:0}.p-app .p-nav{padding:4px 7px}.p-app .p-nav button{min-height:44px;flex-direction:row;gap:8px}.p-mood-dialog.p-mood-dialog-v2{max-height:calc(100dvh - 20px)}.p-mood-dialog-v2>.p-mood-row{grid-template-columns:repeat(6,minmax(0,1fr))}.p-mood-choice .p-emotion-thumbnail{width:48px}.p-mood-dialog-heading{margin-bottom:8px}}
@media(prefers-reduced-motion:reduce){.p-app *{scroll-behavior:auto}}
/* Let short screens and expanded clock controls grow without covering capture. */
@media(orientation:portrait),(min-height:601px){.p-app .p-main.is-home{height:auto;min-height:calc(100dvh - var(--ui-header));padding-bottom:calc(var(--ui-nav-space) + 12px);grid-template-rows:minmax(min-content,1fr) auto}}
