/* Polar Beacon Tools v13 — shared product polish, onboarding, and game UI */
:root{--soft-panel:rgba(255,255,255,.065);--soft-line:rgba(255,255,255,.12);--focus-ring:0 0 0 4px rgba(255,216,77,.18)}
html{scroll-behavior:smooth}body{min-width:320px}button,a,input,textarea,select{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.btn{min-height:42px}.btn-quiet{background:transparent;color:var(--muted);border:1px solid transparent}.btn-quiet:hover{background:rgba(255,255,255,.07);color:#fff}.btn-small{min-height:34px;padding:7px 10px;font-size:.82rem}.icon-btn{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:14px;color:#fff;background:rgba(255,255,255,.09);border:1px solid var(--line)}.section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:15px;flex-wrap:wrap;margin:25px 0 13px}.section-title h2,.section-title h3{margin:0;letter-spacing:-.035em}.section-title p{margin:4px 0 0;color:var(--muted);line-height:1.5}.soft-card{background:var(--soft-panel);border:1px solid var(--soft-line);border-radius:19px}.stack{display:grid;gap:12px}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.split-layout{display:grid;grid-template-columns:245px minmax(0,1fr);gap:17px;align-items:start}.side-nav{position:sticky;top:14px;padding:13px;display:grid;gap:5px}.side-nav button,.side-nav a{display:flex;align-items:center;gap:10px;width:100%;padding:11px 12px;border-radius:14px;color:#fff;text-align:left;text-decoration:none;background:transparent;border:1px solid transparent;font-weight:850}.side-nav button:hover,.side-nav a:hover{background:rgba(255,255,255,.075)}.side-nav button.active,.side-nav a.active{background:rgba(255,216,77,.14);border-color:rgba(255,216,77,.3);color:#ffe982}.side-nav .nav-copy{min-width:0}.side-nav small{display:block;color:var(--muted);font-weight:550;margin-top:3px}.main-workspace{min-width:0}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.metric{padding:14px;border-radius:17px;background:rgba(255,255,255,.065);border:1px solid var(--line)}.metric b{display:block;font-size:1.45rem;letter-spacing:-.04em}.metric span{display:block;color:var(--muted);font-size:.76rem;margin-top:3px}.segmented{display:inline-flex;gap:4px;padding:4px;border-radius:16px;background:rgba(0,0,0,.16);border:1px solid var(--line);flex-wrap:wrap}.segmented button{padding:8px 11px;border-radius:12px;color:#fff;background:transparent}.segmented button.active{background:rgba(255,216,77,.17);color:#ffe982}.disclosure{border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.045)}.disclosure summary{cursor:pointer;padding:12px 14px;font-weight:850}.disclosure>div{padding:0 14px 14px}.status-dot{width:9px;height:9px;border-radius:50%;background:var(--muted);display:inline-block}.status-dot.good{background:var(--good)}.status-dot.warn{background:var(--accent)}.status-dot.bad{background:var(--bad)}.inline-note{padding:10px 12px;border-radius:14px;background:rgba(59,212,255,.08);border:1px solid rgba(59,212,255,.2);color:var(--muted);line-height:1.45;font-size:.86rem}.empty-action{display:grid;place-items:center;text-align:center;min-height:250px;padding:30px}.empty-action .empty-icon{font-size:2.7rem}.empty-action h3{margin:11px 0 6px}.empty-action p{max-width:470px;color:var(--muted);line-height:1.55;margin:0 0 15px}.tag-row{display:flex;gap:7px;flex-wrap:wrap}.tag{display:inline-flex;align-items:center;gap:5px;padding:6px 9px;border-radius:999px;background:rgba(255,255,255,.075);border:1px solid rgba(255,255,255,.1);font-size:.75rem;color:var(--muted)}.tag strong{color:#fff}.card-action-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:13px}.kbd{display:inline-block;padding:2px 6px;border-radius:6px;background:rgba(0,0,0,.2);border:1px solid var(--line);font-size:.72rem;color:var(--muted)}
/* Tutorial */
.pb-tutorial-card{width:min(640px,96vw)!important;padding:0!important;overflow:hidden!important}.pb-tutorial-visual{min-height:155px;display:grid;place-items:center;text-align:center;padding:24px;background:radial-gradient(circle at 50% 40%,rgba(255,216,77,.24),transparent 44%),linear-gradient(145deg,rgba(255,93,177,.16),rgba(59,212,255,.12));border-bottom:1px solid var(--line)}.pb-tutorial-icon{font-size:4rem;filter:drop-shadow(0 15px 25px rgba(0,0,0,.35))}.pb-tutorial-body{padding:23px}.pb-tutorial-body h2{font-size:clamp(1.75rem,5vw,2.55rem);letter-spacing:-.05em;margin:5px 42px 8px 0}.pb-tutorial-body p{font-size:1rem;margin:0;color:var(--muted)}.pb-tutorial-list{display:grid;gap:8px;margin:16px 0 0}.pb-tutorial-list div{display:flex;gap:9px;align-items:flex-start;padding:9px 10px;border-radius:13px;background:rgba(255,255,255,.055)}.pb-tutorial-list b{color:var(--good)}.pb-tutorial-progress{display:flex;gap:7px;align-items:center}.pb-tutorial-progress span{width:8px;height:8px;border-radius:99px;background:rgba(255,255,255,.24);transition:.2s}.pb-tutorial-progress span.active{width:24px;background:var(--accent)}.pb-tutorial-footer{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;margin-top:20px}.pb-tutorial-nav{display:flex;gap:8px;flex-wrap:wrap}.pb-context-tip{position:fixed;z-index:240;max-width:300px;padding:12px 13px;border-radius:15px;background:#171127;border:1px solid var(--line);box-shadow:0 18px 50px rgba(0,0,0,.4);color:var(--muted);font-size:.85rem;line-height:1.45}.pb-context-tip b{display:block;color:#fff;margin-bottom:3px}.pb-context-tip .suite-modal-x{width:29px;height:29px;top:6px;right:6px;font-size:18px}
/* Game foundation */
.game-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;padding:22px}.game-hero h2{font-size:clamp(2rem,5vw,3.3rem);letter-spacing:-.055em;margin:5px 0 8px}.game-hero p{color:var(--muted);line-height:1.55;margin:0;max-width:680px}.level-ring{--pct:18;position:relative;width:120px;height:120px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--accent) calc(var(--pct)*1%),rgba(255,255,255,.11) 0);box-shadow:0 16px 45px rgba(0,0,0,.25)}.level-ring:after{content:"";position:absolute;inset:9px;border-radius:50%;background:linear-gradient(145deg,#25144b,#110a29);border:1px solid var(--line)}.level-ring-content{position:relative;z-index:1;text-align:center}.level-ring-content b{display:block;font-size:1.75rem}.level-ring-content small{color:var(--muted)}.xp-bar{height:10px;border-radius:99px;background:rgba(255,255,255,.1);overflow:hidden}.xp-bar>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent2,#ff5db1),var(--accent));width:0;transition:width .45s ease}.achievement-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.achievement{padding:13px;display:grid;grid-template-columns:40px minmax(0,1fr);gap:10px;align-items:center;border-radius:16px;background:rgba(255,255,255,.055);border:1px solid var(--line)}.achievement.locked{opacity:.55;filter:saturate(.45)}.achievement-icon{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;background:rgba(255,216,77,.12);font-size:1.25rem}.achievement b,.achievement small{display:block}.achievement small{color:var(--muted);margin-top:3px;line-height:1.35}.achievement-pop{position:fixed;z-index:600;right:20px;bottom:20px;width:min(360px,calc(100vw - 40px));padding:15px;border-radius:18px;background:linear-gradient(145deg,#30205b,#17102e);border:1px solid rgba(255,216,77,.38);box-shadow:var(--shadow);transform:translateY(30px);opacity:0;pointer-events:none;transition:.3s}.achievement-pop.show{transform:none;opacity:1}.achievement-pop b{display:block;color:#ffe982;margin-bottom:4px}.mission-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.mission-card{position:relative;padding:17px;text-align:left;color:#fff;border-radius:20px;background:rgba(255,255,255,.075);border:1px solid var(--line);min-height:170px;overflow:hidden}.mission-card:hover{border-color:rgba(255,216,77,.36)}.mission-card .mission-icon{font-size:2rem}.mission-card h3{margin:10px 0 5px}.mission-card p{color:var(--muted);font-weight:550;line-height:1.4;margin:0 0 13px}.mission-card .mission-meta{font-size:.75rem;color:#ffe982}.mission-card.locked:after{content:"Locked";position:absolute;right:11px;top:11px;padding:5px 8px;border-radius:999px;background:rgba(0,0,0,.28);font-size:.68rem}.question-shell{padding:22px}.question-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.question-number{color:var(--muted);font-size:.84rem}.question-prompt{font-size:clamp(1.4rem,4vw,2.15rem);line-height:1.25;letter-spacing:-.03em;margin:20px 0}.answer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.game-answer{min-height:58px;padding:13px 15px;border-radius:17px;color:#fff;background:rgba(255,255,255,.08);border:1px solid var(--line);text-align:left}.game-answer.correct{background:rgba(112,239,176,.16);border-color:rgba(112,239,176,.5)}.game-answer.wrong{background:rgba(255,135,157,.16);border-color:rgba(255,135,157,.5)}.game-feedback{margin-top:15px;padding:13px 14px;border-radius:16px;background:rgba(0,0,0,.17);border:1px solid var(--line);color:var(--muted);line-height:1.5}.game-feedback.good{border-color:rgba(112,239,176,.35)}.game-feedback.bad{border-color:rgba(255,135,157,.35)}
/* Calendar */
.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-top:12px}.calendar-weekday{padding:8px 5px;text-align:center;color:var(--muted);font-size:.72rem;font-weight:900;text-transform:uppercase}.calendar-day{min-height:112px;padding:8px;border-radius:15px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.08);overflow:hidden}.calendar-day.other{opacity:.38}.calendar-day.today{border-color:rgba(255,216,77,.48);background:rgba(255,216,77,.07)}.calendar-day-number{font-size:.76rem;font-weight:900;color:var(--muted)}.calendar-event{display:block;width:100%;margin-top:5px;padding:6px 7px;border-radius:9px;background:rgba(112,239,176,.12);border:1px solid rgba(112,239,176,.18);color:#fff;text-align:left;font-size:.71rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-event.task{background:rgba(255,216,77,.11);border-color:rgba(255,216,77,.2)}.calendar-event.checklist{background:rgba(59,212,255,.1);border-color:rgba(59,212,255,.2)}.agenda-list{display:grid;gap:10px;margin-top:14px}.agenda-day{padding:14px}.agenda-day h3{margin:0 0 9px}.agenda-entry{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-top:1px solid rgba(255,255,255,.08)}.agenda-entry:first-of-type{border-top:0}.agenda-entry button{color:#fff;background:transparent;text-align:left}.agenda-entry small{color:var(--muted)}
/* Responsive */
@media(max-width:960px){.split-layout{grid-template-columns:1fr}.side-nav{position:static;display:flex;overflow:auto;scrollbar-width:thin}.side-nav button,.side-nav a{min-width:max-content}.metric-grid,.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.mission-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-day{min-height:95px}}
@media(max-width:680px){.grid-2,.grid-3,.metric-grid,.mission-grid,.achievement-grid{grid-template-columns:1fr}.game-hero{grid-template-columns:1fr}.level-ring{width:100px;height:100px}.answer-grid{grid-template-columns:1fr}.calendar-grid{gap:3px}.calendar-day{min-height:76px;padding:5px}.calendar-event{font-size:0;width:100%;height:7px;padding:0;border-radius:99px}.calendar-weekday{font-size:.6rem}.pb-tutorial-body{padding:19px}.pb-tutorial-footer{align-items:flex-start;flex-direction:column}.pb-tutorial-nav{width:100%}.pb-tutorial-nav .btn{flex:1}.card-action-row .btn{flex:1}.side-nav{margin-inline:-2vw;padding-inline:2vw;border-radius:0}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
