:root{
  --paper:#f6efe2;
  --paper-deep:#ebdec9;
  --card:#fffaf0;
  --ink:#261b14;
  --muted:#6d5847;
  --emerald:#115346;
  --emerald-dark:#0b3a31;
  --terracotta:#9a4427;
  --terracotta-dark:#76311a;
  --gold:#c59b52;
  --gold-light:#e7cf98;
  --line:#dccbb0;
  --shadow:0 10px 26px rgba(48,30,14,.10);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:radial-gradient(circle at 20% 0%,#fbf5ea 0%,var(--paper) 55%,var(--paper-deep) 100%);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;-webkit-tap-highlight-color:transparent;overflow-x:hidden}
.app{max-width:520px;margin:0 auto;padding-bottom:96px;min-height:100vh}
.app-header{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 14px;background:linear-gradient(180deg,#866547 0%,#6c4f36 100%);color:#fff7e8;box-shadow:0 4px 14px rgba(40,22,8,.22)}
.app-brand{display:flex;align-items:center;gap:7px;text-decoration:none;color:#fff7e8;font-family:Georgia,'Times New Roman',serif;font-size:21px;font-weight:700;letter-spacing:.2px;flex-shrink:0}
.brand-rosette{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:radial-gradient(circle,#f3d99d,#b8893a);color:#3a2410;font-size:17px;box-shadow:0 0 0 1.5px rgba(255,244,214,.55)}
.header-right{display:flex;align-items:center;gap:6px;min-width:0}
.header-search{display:flex;align-items:center;gap:5px;padding:6px 10px;border-radius:999px;background:rgba(255,247,232,.14);border:1px solid rgba(231,207,152,.35);color:#fff7e8;text-decoration:none;font-size:12px;white-space:nowrap}
.header-search svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2}
.search-placeholder{display:none}
@media(min-width:360px){.search-placeholder{display:inline;opacity:.85}}
.offline-badge{padding:5px 9px;border-radius:999px;background:linear-gradient(180deg,#b78a49,#8e642c);border:1px solid rgba(255,236,192,.45);color:#fff9ec;font-size:10px;font-weight:700;letter-spacing:.4px;white-space:nowrap}
.lock-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;border:1px solid rgba(231,207,152,.45);background:rgba(255,247,232,.14);color:#fff7e8;cursor:pointer;padding:0;flex-shrink:0}
.lock-btn.locked-active{background:linear-gradient(180deg,#1a6b5a,#0f4a3e);border-color:#e7cf98;color:#f7dfa9}
.lock-btn svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2}
.zellige-band{height:8px;background:repeating-linear-gradient(90deg,#c59b52 0 10px,#115346 10px 20px,#9a4427 20px 30px,#e7cf98 30px 40px);opacity:.78;border-bottom:1px solid rgba(111,81,56,.25)}

main#main{padding:14px 14px 18px}
h1,h2,h3{font-family:Georgia,'Times New Roman',serif;margin:0;color:var(--ink)}
.eyebrow,.tiny-label{display:block;font-size:10px;font-weight:700;letter-spacing:.9px;text-transform:uppercase;color:var(--muted)}

/* Welcome Hero */
.welcome{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 2px 10px}
.welcome h1{font-size:26px;line-height:1.12;font-weight:700;color:#271a11}
.welcome p{margin:6px 0 0;font-size:14px;color:var(--muted)}
.door-art{width:118px;height:118px;object-fit:contain;flex-shrink:0;filter:drop-shadow(0 6px 12px rgba(60,36,16,.16))}

/* Continue Emerald Card */
.continue-card{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 16px;border-radius:20px;background:linear-gradient(135deg,#0c4439 0%,#156151 60%,#1c7360 100%);color:#fff9ee;text-decoration:none;box-shadow:0 12px 24px rgba(12,68,57,.26);overflow:hidden;border:1px solid rgba(231,207,152,.35)}
.continue-card svg{display:none}
.continue-card .tiny-label{color:#a9dfd0;margin-bottom:4px}
.continue-card h2{color:#fff9ee;font-size:18px;line-height:1.25;margin-bottom:10px}
.continue-pill{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:999px;background:rgba(10,44,37,.55);border:1px solid #d9b672;color:#f9e6ba;font-size:13px;font-weight:600}
.continue-pill svg{display:inline-block;width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2}
.tile-wash{font-size:56px;line-height:1;color:rgba(255,255,255,.14);flex-shrink:0;transform:rotate(12deg)}

/* Streak & Due Strip */
.streak-strip{display:flex;gap:8px;margin:12px 0 4px;overflow-x:auto;padding-bottom:2px}
.streak-chip{display:inline-flex;align-items:center;gap:5px;padding:6px 11px;border-radius:999px;background:var(--card);border:1px solid var(--line);font-size:12px;font-weight:600;color:var(--ink);text-decoration:none;white-space:nowrap;cursor:pointer}
.streak-chip.accent{background:#fdf3df;border-color:var(--gold);color:#6e4914}

/* Section Heading */
.phone-section,.section-heading{display:flex;align-items:baseline;justify-content:space-between;margin:16px 2px 10px}
.phone-section h2,.section-heading h2{font-size:19px}
.phone-section span,.phone-section a,.section-heading small{font-size:12px;color:var(--muted);text-decoration:none;font-weight:600}
.phone-section a{color:var(--emerald)}

/* Four Books Ornate Shelf */
.phone-books{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.phone-book{display:flex;align-items:center;gap:10px;padding:11px;border-radius:16px;background:var(--card);border:1px solid var(--line);text-decoration:none;color:var(--ink);box-shadow:0 4px 12px rgba(45,28,12,.06);transition:transform .12s}
.phone-book:active{transform:scale(.98)}
.little-book{position:relative;width:44px;height:60px;border-radius:4px 9px 9px 4px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#f7dfa9;font-size:16px;flex-shrink:0;box-shadow:inset 4px 0 0 rgba(0,0,0,.22),0 4px 10px rgba(30,18,8,.22);border:1px solid rgba(231,207,152,.55)}
.little-book::after{content:'';position:absolute;inset:4px 4px 4px 7px;border:1px solid rgba(231,207,152,.45);border-radius:2px 5px 5px 2px;pointer-events:none}
.book-color-0{background:linear-gradient(155deg,#a94c2c,#7a2f18)}
.book-color-1{background:linear-gradient(155deg,#186454,#0d4237)}
.book-color-2{background:linear-gradient(155deg,#9b7242,#6e4c25)}
.book-color-3{background:linear-gradient(155deg,#c9a25e,#997334)}
.book-number{font-size:10px;font-weight:700;color:var(--terracotta);letter-spacing:.7px}
.phone-book h3{font-size:14px;line-height:1.2;margin:1px 0 2px}
.phone-book p{margin:0 0 6px;font-size:11px;color:var(--muted)}
.progress-line{height:5px;border-radius:999px;background:#eadcc4;overflow:hidden}
.progress-line span{display:block;height:100%;background:linear-gradient(90deg,var(--emerald),var(--gold));border-radius:999px}

/* Phrase of the Day */
.daily-card{position:relative;display:block;padding:18px 16px;border-radius:18px;background:linear-gradient(180deg,#fffcf5 0%,#f8eedb 100%);border:1.5px solid var(--gold);text-align:center;text-decoration:none;color:var(--ink);box-shadow:var(--shadow);overflow:hidden}
.pattern-corner{position:absolute;top:0;left:0;width:36px;height:36px;background:radial-gradient(circle at 0 0,var(--emerald) 0 12px,transparent 12px),radial-gradient(circle at 14px 14px,var(--gold) 0 4px,transparent 4px);opacity:.78;pointer-events:none}
.pattern-corner.right{left:auto;right:0;transform:scaleX(-1)}
.daily-card .arabic{font-size:28px;font-weight:700;margin:6px 0 2px;color:#1f1610}
.daily-card .arabizi{display:inline-block;padding:3px 12px;border-radius:999px;background:linear-gradient(180deg,#e4c486,#be9147);color:#2d1d0c;font-size:13px;font-weight:700;margin:4px 0}
.daily-card p{margin:6px 0 0;font-size:14px;color:var(--muted)}
.device-note{display:flex;align-items:center;justify-content:center;gap:6px;margin:16px 0 4px;font-size:12px;color:var(--muted);text-align:center}
.device-note svg{width:14px;height:14px;stroke:var(--emerald);fill:none;stroke-width:2.4}

/* Book Courtyard Map (Screen 2) */
.back{display:inline-flex;align-items:center;gap:6px;color:var(--emerald);text-decoration:none;font-size:13px;font-weight:600;margin-bottom:8px}
.book-map-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}
.book-map-head h1{font-size:28px;margin:2px 0 4px}
.book-map-head p{margin:0;font-size:13px;color:var(--muted);line-height:1.4}
.scroll-stats{flex-shrink:0;width:98px;padding:10px 8px;border-radius:12px;background:linear-gradient(180deg,#fbf1dc,#ebd7b3);border:1.5px solid var(--gold);text-align:center;box-shadow:0 6px 14px rgba(68,42,14,.12)}
.scroll-stats strong{display:block;font-family:Georgia,serif;font-size:18px;color:var(--ink)}
.scroll-stats span{font-size:10px;color:var(--muted);font-weight:600}

.arch-feature{position:relative;padding:20px 16px 18px;border-radius:90px 90px 20px 20px;background:linear-gradient(180deg,#4c3423 0%,#2f1e13 100%);color:#fff7e8;text-align:center;border:3px solid var(--gold);box-shadow:0 14px 28px rgba(45,26,12,.22);margin-bottom:18px}
.arch-feature .eyebrow{color:#e7cf98;margin-bottom:4px}
.arch-feature h2{color:#fff7e8;font-size:20px;margin-bottom:6px}
.arch-feature p{margin:0 0 12px;font-size:12px;color:#e7d8c0}
.gold-cta{display:inline-flex;align-items:center;gap:6px;padding:9px 20px;border-radius:999px;background:linear-gradient(180deg,#f1d493,#c29345);color:#2d1d0c;font-weight:700;font-size:14px;text-decoration:none;border:1px solid #fff2cf;box-shadow:0 4px 10px rgba(0,0,0,.22)}

.courtyard-path{display:flex;flex-direction:column;gap:12px;position:relative;padding:4px 0}
.courtyard-node{display:flex;align-items:center;gap:12px;padding:13px 14px;border-radius:42px 42px 16px 16px;background:linear-gradient(180deg,#fffaf0 0%,#f2e5ce 100%);border:1.5px solid #d5bc93;text-decoration:none;color:var(--ink);box-shadow:0 5px 14px rgba(56,34,14,.08)}
.courtyard-node.done{border-color:var(--emerald);background:linear-gradient(180deg,#f2fbf8 0%,#e2f3ec 100%)}
.node-lantern{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#3d291b,#26180f);color:#f3d48f;font-weight:700;font-size:13px;border:2px solid var(--gold);flex-shrink:0}
.courtyard-node.done .node-lantern{background:linear-gradient(180deg,#186655,#0d4237);color:#fff}
.node-body{flex:1;min-width:0}
.node-body h3{font-size:15px;line-height:1.25;margin-bottom:3px}
.node-body p{margin:0;font-size:12px;color:var(--muted)}
.node-ring{font-size:12px;font-weight:700;color:var(--terracotta);padding:5px 9px;border-radius:999px;background:rgba(197,155,82,.18);border:1px solid rgba(197,155,82,.45);flex-shrink:0}

.quick-pill-bar{display:flex;flex-wrap:wrap;gap:7px;margin:16px 0 8px}
.quick-pill{flex:1 1 auto;text-align:center;padding:8px 10px;border-radius:999px;background:var(--card);border:1px solid var(--gold);color:var(--ink);font-size:12px;font-weight:600;text-decoration:none;white-space:nowrap}

/* Lesson / Practice Screen (Screen 3) */
.lesson-topline{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.lesson-topline a{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--card);border:1px solid var(--line);color:var(--ink);text-decoration:none;font-weight:700}
.lesson-crumb{padding:5px 12px;border-radius:999px;background:var(--card);border:1px solid var(--line);font-size:12px;font-weight:600;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tiny-complete{width:34px;height:34px;border-radius:50%;border:1.5px solid var(--gold);background:radial-gradient(circle,#f3d99d,#c49445);color:#2d1d0c;font-weight:700;cursor:pointer;flex-shrink:0}
.phone-lesson-title h1{font-size:21px;text-align:center;margin-bottom:10px}

.tabs.phone-tabs{display:flex;gap:6px;background:var(--paper-deep);padding:4px;border-radius:999px;margin-bottom:12px;border:1px solid var(--line)}
.tabs.phone-tabs button{flex:1;padding:8px 10px;border:0;border-radius:999px;background:transparent;color:var(--muted);font-size:13px;font-weight:600;cursor:pointer}
.tabs.phone-tabs button.selected{background:var(--emerald);color:#fff9ee;box-shadow:0 3px 8px rgba(17,83,70,.25)}

/* Zellige Archway Phrase Card */
.phone-phrase{position:relative;padding:22px 16px 18px;border-radius:110px 110px 22px 22px;background:radial-gradient(circle at 50% 25%,#f4e2c5 0%,#e5c89e 68%,#d4ad79 100%);border:3px solid var(--gold);box-shadow:inset 0 0 0 4px rgba(17,83,70,.18),var(--shadow);text-align:center;overflow:hidden}
.phone-phrase .tiny-label{color:#5e4228;margin-bottom:6px}
.phone-phrase .arabic{font-size:38px;font-weight:700;line-height:1.3;color:#23170e;margin:6px 0}
.phone-phrase .arabizi{display:inline-block;padding:6px 18px;border-radius:999px;background:linear-gradient(180deg,#e7c583,#b9883c);border:1px solid #fff0c9;color:#291908;font-size:16px;font-weight:700;box-shadow:0 4px 10px rgba(48,28,8,.18);margin:4px 0 8px}
.phone-meaning{font-size:19px;font-weight:600;color:#2e2015;margin:4px 0 0}
.hidden-translation{visibility:hidden}

/* Swipeable Grammar / Context Note Strip */
.note-strip{display:flex;gap:8px;overflow-x:auto;padding:10px 2px 4px;scroll-snap-type:x mandatory}
.note-card{flex:0 0 74%;scroll-snap-align:start;padding:10px 12px;border-radius:14px;background:var(--card);border:1px solid var(--line);box-shadow:0 3px 10px rgba(40,24,10,.06);text-decoration:none;color:var(--ink)}
.note-card h4{margin:0 0 3px;font-size:13px;font-family:Georgia,serif}
.note-card p{margin:0;font-size:12px;color:var(--muted);line-height:1.35}

/* Waveform + Star Play Controls */
.waveform-bar{display:flex;align-items:center;justify-content:center;gap:3px;height:28px;margin:10px 0 6px}
.waveform-bar span{width:3px;border-radius:999px;background:linear-gradient(180deg,#d8b16a,#9b7232);transition:height .2s}
.waveform-bar.playing span{animation:wavePulse .7s ease-in-out infinite alternate}
@keyframes wavePulse{from{transform:scaleY(.55)}to{transform:scaleY(1.25)}}

.phone-controls{display:flex;align-items:center;justify-content:center;gap:14px;margin:6px 0 10px}
.control-tile{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border-radius:999px;background:linear-gradient(180deg,#fffaf0,#e6d7be);border:1px solid #cbb591;color:var(--ink);font-size:13px;font-weight:600;cursor:pointer;box-shadow:0 3px 8px rgba(40,24,10,.08)}
.control-tile svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2}
.control-tile.saved{background:linear-gradient(180deg,#1a6b5a,#0f4a3e);color:#fff8e7;border-color:var(--gold)}

.big-play{width:64px;height:64px;border-radius:18px;transform:rotate(45deg);border:2.5px solid var(--gold-light);background:radial-gradient(circle at 35% 35%,#228470,#0c4439);color:#f7dfa9;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 8px 18px rgba(12,68,57,.32);flex-shrink:0}
.big-play svg{width:24px;height:24px;fill:currentColor;transform:rotate(-45deg);margin-left:2px}
.big-play:disabled{opacity:.48;cursor:not-allowed}

.phone-playback{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;border-radius:14px;background:var(--card);border:1px solid var(--line);font-size:13px;margin-bottom:8px}
.phone-playback select{border:1px solid var(--line);border-radius:8px;padding:4px 8px;background:#fff;color:var(--ink);font-weight:600}
.mic-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border-radius:999px;border:1px solid var(--gold);background:#fdf3df;color:#5f3f13;font-size:12px;font-weight:700;cursor:pointer}
.mic-btn.recording{background:#b83227;color:#fff;border-color:#ffd0ca;animation:recPulse 1s infinite}
@keyframes recPulse{50%{opacity:.75}}
.mic-btn svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2}

.toggle-row{display:flex;gap:8px;margin:8px 0}
.translation-toggle{flex:1;padding:10px 12px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--ink);font-size:13px;font-weight:600;cursor:pointer}
.terracotta-cta{display:block;width:100%;padding:13px 16px;border-radius:999px;border:1.5px solid var(--gold-light);background:linear-gradient(180deg,#a64b2b,#782f17);color:#fff8ec;font-size:15px;font-weight:700;text-align:center;cursor:pointer;box-shadow:0 8px 18px rgba(120,47,23,.26);margin:8px 0}
.phone-phrase-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px}
.phone-phrase-nav a{font-size:12px;color:var(--emerald);font-weight:600;text-decoration:none}

/* Buttons & Cards */
.primary,.secondary{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 16px;border-radius:999px;font-size:14px;font-weight:600;text-decoration:none;cursor:pointer;border:1px solid transparent}
.primary{background:var(--emerald);color:#fff8eb}
.secondary{background:var(--card);border-color:var(--line);color:var(--ink)}
.primary:disabled,.secondary:disabled{opacity:.45;cursor:not-allowed}
.full-width{width:100%}
.info-card,.saved-card,.voice-card,.offline-panel,.result{display:block;padding:14px;border-radius:16px;background:var(--card);border:1px solid var(--line);margin-bottom:10px;text-decoration:none;color:var(--ink);box-shadow:0 4px 12px rgba(45,28,12,.05)}
.phrase-grid{display:grid;gap:10px}
.arabic{font-family:'Geeza Pro','Noto Naskh Arabic',Tahoma,sans-serif}
.saved-card .arabic,.phone-bubble .arabic{font-size:24px;font-weight:700;margin:4px 0}
.saved-card .arabizi,.phone-bubble .arabizi{font-size:14px;font-weight:700;color:var(--terracotta)}
.card-actions,.bubble-controls,.filter-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.phone-dialogue{display:flex;flex-direction:column;gap:10px;margin:10px 0}
.phone-bubble{padding:12px 14px;border-radius:18px 18px 18px 4px;background:var(--card);border:1px solid var(--line);max-width:92%}
.phone-bubble.reply{align-self:flex-end;border-radius:18px 18px 4px 18px;background:#eef6f3;border-color:#b8d7ce}
.phone-bubble.role-hidden .arabic,.phone-bubble.role-hidden .arabizi,.phone-bubble.role-hidden p{filter:blur(6px);user-select:none}
.small-play,.round{width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.small-play svg,.round svg{width:14px;height:14px;fill:currentColor;stroke:currentColor}

/* Challenge & Quiz */
.quiz-box{padding:18px 16px;border-radius:20px;background:var(--card);border:1.5px solid var(--gold);box-shadow:var(--shadow)}
.quiz-options{display:grid;gap:8px;margin-top:12px}
.quiz-opt{padding:12px 14px;border-radius:14px;border:1.5px solid var(--line);background:#fff;text-align:left;font-size:14px;font-weight:600;color:var(--ink);cursor:pointer}
.quiz-opt.correct{background:#e1f5ec;border-color:var(--emerald);color:#0b4236}
.quiz-opt.wrong{background:#fdecea;border-color:#c0392b;color:#7a1f16}
.arabizi-keys{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.arabizi-key-btn{padding:6px 11px;border-radius:10px;border:1px solid var(--gold);background:#fdf3df;font-weight:700;color:#5a3b10;cursor:pointer}
.quiz-input{width:100%;padding:11px 13px;border-radius:12px;border:1.5px solid var(--line);font-size:15px;background:#fff}

/* Search & Original Page */
.search-box{display:flex;gap:8px;margin-bottom:10px}
.search-box input,.catalog-query{width:100%;padding:11px 14px;border-radius:999px;border:1.5px solid var(--line);background:#fff;font-size:15px}
.original-page img{width:100%;height:auto;border-radius:12px;border:1px solid var(--line);background:#fff}
.reader-bar,.lesson-pagination{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:10px 0;flex-wrap:wrap}
.table-scroll{overflow-x:auto;margin:10px 0}
table{width:100%;border-collapse:collapse;background:#fff;font-size:13px}
th,td{padding:8px;border:1px solid var(--line);text-align:left}
th{background:#f5ead7}

/* Sculpted Emerald & Gold Bottom Nav */
.mobile-nav{position:fixed;left:0;right:0;bottom:0;z-index:40;max-width:520px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);padding:6px 10px calc(8px + env(safe-area-inset-bottom,0px));background:linear-gradient(180deg,#156151 0%,#0b3b31 100%);border-top:2px solid var(--gold);border-radius:22px 22px 0 0;box-shadow:0 -6px 20px rgba(11,59,49,.28)}
.mobile-nav a{display:flex;justify-content:center;text-decoration:none;color:rgba(255,244,218,.78);font-size:11px;font-weight:600}
.nav-pill{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 16px;border-radius:16px}
.mobile-nav a.active{color:#f9e2a8}
.mobile-nav a.active .nav-pill{background:rgba(231,207,152,.16);box-shadow:inset 0 0 0 1px rgba(231,207,152,.4)}
.mobile-nav svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2}

/* Modals & Local PIN Lock */
.modal-backdrop{position:fixed;inset:0;z-index:90;background:rgba(26,16,9,.72);display:flex;align-items:center;justify-content:center;padding:16px;backdrop-filter:blur(4px)}
.modal-card{width:100%;max-width:360px;padding:20px 18px;border-radius:24px;background:linear-gradient(180deg,#fffaf0,#f3e6cf);border:2px solid var(--gold);box-shadow:0 20px 40px rgba(0,0,0,.35);text-align:center}
.pin-dots{display:flex;justify-content:center;gap:12px;margin:14px 0}
.pin-dot{width:14px;height:14px;border-radius:50%;border:2px solid var(--gold);background:transparent}
.pin-dot.filled{background:var(--emerald);border-color:var(--emerald)}
.pin-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;max-width:240px;margin:10px auto 4px}
.pin-key{padding:12px;border-radius:14px;border:1px solid var(--line);background:#fff;font-size:18px;font-weight:700;color:var(--ink);cursor:pointer}
.pin-key:active{background:var(--paper-deep)}

#toast{position:fixed;left:50%;bottom:84px;transform:translateX(-50%) translateY(20px);opacity:0;pointer-events:none;background:#261b14;color:#fff7e8;padding:9px 16px;border-radius:999px;font-size:13px;z-index:100;transition:all .2s;max-width:90%;text-align:center}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.empty{text-align:center;padding:28px 16px;background:var(--card);border:1px solid var(--line);border-radius:18px}
.audio-import input,.audio-import label{font-size:12px}
