.pc-root { --pc-brand:var(--theme-primary,#007f7b); --pc-deep:var(--theme-primary-deep,#005a57); color:#193545; font-family:inherit; }
.pc-root,.pc-root * { box-sizing:border-box; }
.pc-dock { position:fixed; bottom:calc(154px + env(safe-area-inset-bottom,0px)); left:50%; transform:translateX(-50%); width:min(calc(100% - 20px),460px); z-index:140; pointer-events:none; display:flex; justify-content:flex-end; }
.pc-fab { position:relative; isolation:isolate; display:grid; place-items:center; width:50px; height:50px; padding:0; border:2px solid #fff7cf; border-radius:17px; background:linear-gradient(145deg,#fff7a9 0%,#ffc928 16%,#f39a00 48%,#b95b00 100%); color:#fff; box-shadow:0 7px 16px #001c2e52,0 0 0 3px color-mix(in srgb,var(--pc-brand),white 18%),0 0 16px color-mix(in srgb,var(--pc-brand),transparent 42%),inset 1px 2px 3px #fffbd4,inset -2px -3px 5px #7e3900a8; cursor:pointer; pointer-events:auto; touch-action:manipulation; overflow:visible; transition:transform .15s,filter .15s; }
.pc-fab::before { content:""; position:absolute; inset:5px; z-index:-1; border:1px solid #ffffffb8; border-radius:12px; background:linear-gradient(145deg,color-mix(in srgb,var(--pc-brand),white 38%),var(--pc-deep)); box-shadow:inset 2px 2px 3px #ffffff9e,inset -2px -3px 4px #001b2b6e; }
.pc-fab::after { content:""; position:absolute; inset:-6px; z-index:-2; border-radius:21px; border:1px solid color-mix(in srgb,var(--pc-brand),white 58%); opacity:.58; animation:pc-fab-ring 2.4s ease-out infinite; }
.pc-fab-shine { position:absolute; left:8px; top:6px; width:25px; height:10px; z-index:1; border-radius:50%; background:linear-gradient(180deg,#fff,#ffffff0a); transform:rotate(-13deg); opacity:.78; pointer-events:none; }
.pc-fab-icon { position:relative; z-index:2; display:grid; place-items:center; filter:drop-shadow(0 2px 1px #002737a8); }
.pc-fab svg,.pc-title-icon svg { display:block; width:25px; height:25px; }
.pc-fab-stars { position:absolute; z-index:3; right:-5px; top:-8px; color:#fff5a0; font-size:15px; line-height:1; text-shadow:0 0 4px #fff,0 1px 2px #9a5400; animation:pc-fab-sparkle 1.6s ease-in-out infinite; }
.pc-fab:hover { filter:saturate(1.12) brightness(1.05); transform:translateY(-2px) scale(1.04); }
.pc-fab:active { transform:scale(.9); animation:none; }
.pc-fab:focus-visible,.pc-root button:focus-visible { outline:3px solid #ffc449; outline-offset:2px; }
body:has(.mp-confirm-overlay) .pc-dock { visibility:hidden; }
.pc-overlay { position:fixed; inset:0; z-index:10050; background:#00172585; display:flex; justify-content:center; align-items:flex-end; padding:12px 8px max(8px,env(safe-area-inset-bottom,0px)); overscroll-behavior:contain; }
.pc-sheet { width:100%; max-width:460px; max-height:calc(100dvh - 24px); min-height:310px; border:1px solid #ffffffbb; border-radius:22px; overflow:auto; overscroll-behavior:contain; background:#f7fbfd; box-shadow:0 -8px 40px #0018254d; outline:none; animation:pc-enter .18s ease-out; }
.pc-header { display:flex; gap:10px; align-items:center; padding:14px; color:#fff; background:linear-gradient(125deg,var(--pc-brand),var(--pc-deep)); border-radius:21px 21px 0 0; }
.pc-header h2 { margin:0; font-size:18px; line-height:1.3; color:#fff; }
.pc-header small { color:#ffffffdf; font-size:11px; }
.pc-title-icon { display:grid; place-items:center; width:38px; height:38px; border:1px solid #ffffff70; background:#ffffff20; border-radius:12px; }
.pc-close { width:38px; height:38px; margin-left:auto; padding:0; border:1px solid #ffffff60; border-radius:12px; background:#ffffff1a; color:#fff; font-size:28px; cursor:pointer; }
.pc-tabs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding:10px 10px 0; gap:5px; }
.pc-tabs button { border:1px solid #d0dfe5; background:#fff; color:#3d5260; font:inherit; font-size:12px; font-weight:750; padding:10px 2px; border-radius:11px; min-height:42px; cursor:pointer; }
.pc-tabs button.active { color:#fff; background:var(--pc-deep); border-color:var(--pc-deep); box-shadow:0 3px 8px #153c4224; }
.pc-body { padding:14px; }
.pc-label { display:block; font-size:12px; font-weight:750; margin-bottom:6px; }
.pc-input-row { display:flex; gap:8px; }
.pc-input-row input { min-width:0; width:100%; height:48px; border:1px solid #b9d0db; border-radius:12px; background:#fff; color:#193545; font:inherit; font-size:22px; font-weight:750; letter-spacing:3px; padding:8px 12px; }
.pc-input-row input::placeholder { font-size:15px; letter-spacing:0; color:#738a96; font-weight:400; }
.pc-input-row input:focus { outline:2px solid var(--pc-brand); outline-offset:1px; }
.pc-input-row input[aria-invalid=true] { border-color:#d3294c; }
.pc-clear { border:1px solid #c7dbe4; background:#eaf2f6; color:#254657; border-radius:12px; padding:8px 12px; font:inherit; font-size:12px; font-weight:700; cursor:pointer; }
.pc-results { padding-top:12px; }
.pc-hint { font-size:12px; line-height:1.6; color:#5d7482; margin:6px 0; }
.pc-error { font-size:12px; color:#be1d40; background:#fff0f3; padding:10px; border-radius:10px; }
.pc-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; }
.pc-summary span { text-align:center; background:#e8f2f4; border:1px solid #d0e2e7; border-radius:12px; padding:8px; font-size:11px; color:#526d79; }
.pc-summary strong { display:block; font-size:26px; line-height:1.4; color:var(--pc-deep); }
.pc-results h3 { display:flex; justify-content:space-between; font-size:13px; margin:14px 0 8px; color:#193545; }
.pc-results h3 small { font-size:11px; color:#617d8c; font-weight:400; }
.pc-chips { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:6px; }
.pc-chips span { border:1px solid #cadfe5; background:linear-gradient(#fff,#eaf3f7); border-radius:9px; text-align:center; padding:8px 0; font-size:14px; font-weight:750; font-variant-numeric:tabular-nums; }
.pc-ank-group + .pc-ank-group { margin-top:16px; border-top:1px solid #dce8ed; }
@keyframes pc-enter { from { opacity:0; transform:translateY(15px); } to { opacity:1; transform:translateY(0); } }
@keyframes pc-fab-ring { 0% { transform:scale(.88); opacity:.72; } 72%,100% { transform:scale(1.13); opacity:0; } }
@keyframes pc-fab-sparkle { 0%,100% { transform:scale(.7) rotate(-8deg); opacity:.45; } 45% { transform:scale(1.18) rotate(8deg); opacity:1; } }
@media(prefers-reduced-motion:reduce) { .pc-root * { animation:none!important; transition:none!important; } }
