:root{
  --ncm-bg:#f4efe3;
  --ncm-panel:#fffdf7;
  --ncm-accent:#1e493a;
  --ncm-accent-2:#305b4c;
  --ncm-gold:#c79d3b;
  --ncm-red:#bb4545;
  --ncm-red-soft:rgba(210,64,64,.17);
  --ncm-ink:#151515;
  --ncm-line:#e4d9bf;
  --ncm-shadow:0 20px 40px rgba(48,35,18,.12);
}
.necomoji-app-root{
  font-family:"Hiragino Sans","Yu Gothic","Noto Sans JP",system-ui,sans-serif;
  color:var(--ncm-ink);
  -webkit-user-select:none; user-select:none;
  -webkit-touch-callout:none;
}
.necomoji-app-root, .necomoji-app-root *{box-sizing:border-box}
.ncm-grid > *, .ncm-main-wrap, .ncm-panel, .ncm-practice-grid > *, .ncm-dashboard-grid > *{min-width:0;}
.ncm-shell{
  max-width:1280px;
  margin:24px auto;
  background:linear-gradient(180deg,#fdfaf2 0%,#f5efe2 100%);
  border:1px solid #d7c7a2;
  border-radius:30px;
  box-shadow:var(--ncm-shadow);
  overflow:hidden;
}
.ncm-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  padding:24px 26px;
  background:linear-gradient(135deg,var(--ncm-accent) 0%,var(--ncm-accent-2) 100%);
  color:#fff;
}
.ncm-brand h2{margin:0;font-size:30px;letter-spacing:.06em}
.ncm-brand p{margin:6px 0 0;opacity:.9}
.ncm-top-actions{display:flex;gap:10px;flex-wrap:wrap}
.ncm-body{padding:24px}
.ncm-grid{display:grid;grid-template-columns:360px 1fr;gap:22px}
.ncm-panel{
  background:var(--ncm-panel);
  border:1px solid #e0d5bd;
  border-radius:26px;
  box-shadow:0 10px 24px rgba(42,30,8,.07);
}
.ncm-panel-body{padding:22px}
.ncm-panel h3{margin:0 0 12px;font-size:22px}
.ncm-main-wrap{display:grid;gap:20px}
.ncm-dashboard-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:20px}
.ncm-atm-buttons{display:grid;gap:14px;grid-template-columns:1fr 1fr}
.ncm-btn{
  appearance:none;border:none;border-radius:20px;cursor:pointer;font-weight:700;letter-spacing:.04em;
  transition:transform .16s ease, box-shadow .16s ease, opacity .16s ease;
}
.ncm-btn:hover{transform:translateY(-1px)}
.ncm-btn:active{transform:translateY(1px)}
.ncm-btn-main{
  background:linear-gradient(180deg,#fffef9 0%,#f6e9c5 100%);
  color:#1a1f1d;padding:18px 16px;box-shadow:inset 0 0 0 2px #fff8dd, 0 8px 20px rgba(100,73,18,.12);
  border:1px solid #d9bf73;min-height:110px;text-align:left;
}
.ncm-btn-main.is-active{box-shadow:inset 0 0 0 3px #2c5c4c, 0 12px 24px rgba(31,67,54,.16)}
.ncm-btn-main strong{display:block;font-size:21px;margin-bottom:6px}
.ncm-btn-main span{display:block;font-size:13px;line-height:1.6;color:#5d5341}
.ncm-btn-ghost{background:#fff;color:var(--ncm-accent);border:1px solid #d0c6b2;padding:12px 15px;text-decoration:none}
.ncm-btn-primary{background:linear-gradient(180deg,#305b4c 0%,#17352a 100%);color:#fff;padding:15px 18px;box-shadow:0 10px 20px rgba(23,53,42,.18)}
.ncm-btn-danger{background:linear-gradient(180deg,#aa5050 0%,#7b2929 100%);color:#fff;padding:14px 16px}
.ncm-btn-pill{background:#f3ede0;border:1px solid #dfd1b0;color:#5d5341;padding:12px 14px}
.ncm-btn-pill.is-active{background:linear-gradient(180deg,#f7eecb 0%,#ead294 100%);color:#2d2a23;border-color:#caa857}
.ncm-remaining-card{
  margin-top:18px;padding:18px;border-radius:22px;background:linear-gradient(180deg,#fff8e8 0%,#f3e1b5 100%);
  border:1px solid #dcc07c;
}
.ncm-remaining-top{font-size:13px;color:#6b5a39;margin-bottom:8px}
.ncm-remaining-card strong{display:block;font-size:30px;line-height:1.1}
.ncm-remaining-card p{margin:8px 0 12px;color:#665945;font-size:13px;line-height:1.7}
.ncm-rail{display:grid;gap:10px;margin-top:18px}
.ncm-grade-row{padding:12px 14px;border-radius:16px;background:#fff;border:1px solid #ebe2d0}
.ncm-grade-row.is-active{border-color:#d7c07a;background:#fff8e8}
.ncm-grade-row-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:8px}
.ncm-grade-row-meta{margin-top:6px;font-size:12px;color:#6f6554}
.ncm-mini-progress{position:relative;height:9px;border-radius:999px;background:#e8ddc6;overflow:hidden}
.ncm-mini-progress span{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,#d5a940 0%,#f3d98b 100%);border-radius:999px}
.ncm-mini-progress-large{height:12px}
.ncm-practice-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.ncm-pill-row{display:flex;gap:8px;flex-wrap:wrap}
.ncm-practice-grid{display:grid;grid-template-columns:330px minmax(0,1fr);gap:20px}
.ncm-target-card,.ncm-canvas-card{padding:20px;border-radius:24px;background:#fff;border:1px solid #eadfc8;min-width:0}
.ncm-target-reading{text-align:center;color:#655948;font-size:15px;margin-bottom:12px}
.ncm-target-kanji{font-size:132px;line-height:1;text-align:center;margin:10px 0 18px;font-family:"Yu Mincho","Hiragino Mincho ProN",serif}
.ncm-target-meta{display:grid;gap:10px}
.ncm-meta-box{padding:14px 16px;border-radius:16px;background:#f8f3e9;border:1px solid #e6d8bb;display:grid;gap:4px}
.ncm-meta-box strong{font-size:18px}
.ncm-meta-box span{font-size:12px;color:#675d4d}
.ncm-canvas-top{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.ncm-judge-pill{display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:10px 14px;font-weight:800}
.ncm-judge-pill.is-good{background:#e6f6ea;color:#24513f}
.ncm-judge-pill.is-bad{background:#fae3e3;color:#872f2f}
.ncm-canvas-wrap{
  position:relative;width:100%;max-width:100%;aspect-ratio:1/1;min-height:420px;
  background:
    linear-gradient(to right, transparent calc(50% - 1px), rgba(194,98,98,.55) calc(50% - 1px), rgba(194,98,98,.55) calc(50% + 1px), transparent calc(50% + 1px)),
    linear-gradient(to bottom, transparent calc(50% - 1px), rgba(194,98,98,.55) calc(50% - 1px), rgba(194,98,98,.55) calc(50% + 1px), transparent calc(50% + 1px)),
    repeating-linear-gradient(to right, transparent, transparent calc(25% - 1px), rgba(216,209,191,.75) calc(25% - 1px), rgba(216,209,191,.75) 25%),
    repeating-linear-gradient(to bottom, transparent, transparent calc(25% - 1px), rgba(216,209,191,.75) calc(25% - 1px), rgba(216,209,191,.75) 25%),
    #fff;
  border:2px solid #d8c6a0;border-radius:28px;overflow:hidden;touch-action:none;
  -webkit-user-select:none;user-select:none;-webkit-touch-callout:none;
}
.ncm-model-card{margin-top:16px;padding:16px;border-radius:20px;background:#f8f4ea;border:1px solid #eadfc8;display:grid;gap:12px}
.ncm-model-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.ncm-model-stage{display:flex;align-items:center;justify-content:center;border-radius:18px;background:#fff;border:1px solid #e6d8bb;min-height:220px;padding:10px;overflow:hidden}
.ncm-model-svg{display:block;width:min(100%,260px);height:auto;max-height:260px}
.ncm-btn-small{padding:10px 12px;font-size:13px}

.ncm-canvas-guide{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;
  font-size:230px;color:rgba(128,118,93,.10);font-family:"Yu Mincho","Hiragino Mincho ProN",serif;
}
.ncm-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.ncm-overlay{position:absolute;inset:0;pointer-events:none}
.ncm-mark{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-size:min(34vw,220px);font-weight:900;line-height:1;opacity:.24;text-shadow:0 2px 0 rgba(255,255,255,.35);
}
.ncm-mark-circle{color:#2d724c}
.ncm-mark-cross{color:#c03e3e}
.ncm-focus-area{
  position:absolute;background:var(--ncm-red-soft);border:2px dashed rgba(199,64,64,.38);border-radius:18px;backdrop-filter:blur(1px);
}
.ncm-focus-area span{position:absolute;left:10px;top:10px;font-size:11px;font-weight:700;color:#9d2f2f;background:rgba(255,255,255,.9);padding:5px 8px;border-radius:999px;max-width:calc(100% - 20px);line-height:1.35}
.ncm-focus-area.is-extra{background:rgba(222,96,74,.18);border-color:rgba(186,79,59,.55)}
.ncm-focus-area.is-extra span{color:#93402e}
.ncm-terminal-dot{position:absolute;width:14px;height:14px;border-radius:50%;background:rgba(201,55,55,.9);box-shadow:0 0 0 4px rgba(201,55,55,.12)}
.ncm-canvas-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.ncm-feedback-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px}
.ncm-feedback-card{padding:14px 16px;border-radius:18px;background:#fff;border:1px solid #e5dcc9}
.ncm-feedback-card em{display:block;font-style:normal;color:#665b4a;font-size:13px;margin-bottom:8px}
.ncm-feedback-card strong{font-size:22px}
.ncm-result-box{margin-top:14px;padding:18px;border-radius:20px;background:#f8f4ea;border:1px solid #eadfc8}
.ncm-ending-summary{margin-top:12px;display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:#eef5ef;border:1px solid #d6e5d7;color:#2e5946;font-size:13px;font-weight:700}
.ncm-flag-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.ncm-flag{display:inline-flex;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:700;background:#fae3e3;color:#842d2d}
.ncm-status-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ncm-stat-card{padding:16px;border-radius:18px;background:#fff;border:1px solid #e5dcc9}
.ncm-stat-card em{display:block;font-style:normal;color:#6f6554;font-size:13px;margin-bottom:8px}
.ncm-stat-card strong{font-size:24px}
.ncm-growth-card{margin-top:16px;padding:18px;border-radius:20px;background:linear-gradient(180deg,#fff9ec 0%,#f2e5bf 100%);border:1px solid #dcc07c}
.ncm-growth-head{display:flex;justify-content:space-between;gap:10px;align-items:end;flex-wrap:wrap}
.ncm-growth-head span{font-size:12px;color:#6b5a39}
.ncm-growth-bar{position:relative;height:12px;border-radius:999px;background:#e2d5af;overflow:hidden;margin:12px 0 4px}
.ncm-growth-bar > span{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,#d5a940 0%,#f3d98b 100%);border-radius:999px}
.ncm-recent-wrap{display:flex;flex-wrap:wrap;gap:10px}
.ncm-recent-chip{display:inline-flex;align-items:center;gap:10px;padding:10px 12px;border-radius:16px;background:#fff;border:1px solid #e5dcc9}
.ncm-recent-chip.is-mastered{background:#fff6d9;border-color:#e9d088}
.ncm-recent-chip.is-weak{background:#fff0f0;border-color:#e6bbbb}
.ncm-recent-kanji{font-size:28px;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;line-height:1}
.ncm-recent-meta{font-size:12px;color:#6f6554}
.ncm-list-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:14px}
.ncm-char-card{
  background:#fff;border:1px solid #e5dcc9;border-radius:18px;padding:14px 14px 16px;text-align:left;color:inherit;
}
.ncm-char-card.is-active{border-color:#cda44d;box-shadow:0 10px 18px rgba(170,132,39,.12)}
.ncm-char-card-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}
.ncm-char-big{font-size:46px;line-height:1;font-family:"Yu Mincho","Hiragino Mincho ProN",serif}
.ncm-char-meta{margin-top:8px;font-size:12px;color:#6f6554}
.ncm-badge{display:inline-flex;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:700}
.ncm-badge-good{background:#e5f1e8;color:#24513f}
.ncm-badge-learning{background:#eef4ff;color:#365794}
.ncm-badge-weak{background:#f9e2df;color:#7e3434}
.ncm-badge-new{background:#ece7db;color:#5d5341}
.ncm-badge-master{background:#f7edc5;color:#765c17}
.ncm-empty{padding:20px;border-radius:16px;background:#fff;border:1px dashed #d8c6a0;color:#6f6554;text-align:center}
.ncm-login-box{padding:48px 24px;text-align:center}
.ncm-login-box h3{font-size:28px;margin:0 0 8px}
.ncm-login-box p{color:#655948;margin:0 0 18px}
.ncm-note{font-size:13px;color:#6d604d;line-height:1.8}
@media (max-width: 1180px){
  .ncm-grid{grid-template-columns:1fr}
  .ncm-dashboard-grid,.ncm-practice-grid{grid-template-columns:1fr}
}
@media (max-width: 760px){
  .ncm-header{padding:18px 20px}
  .ncm-body{padding:16px}
  .ncm-shell{margin:12px auto;border-radius:22px}
  .ncm-atm-buttons,.ncm-status-grid,.ncm-feedback-grid,.ncm-list-grid{grid-template-columns:1fr}
  .ncm-practice-grid{grid-template-columns:1fr}
  .ncm-target-card,.ncm-canvas-card,.ncm-panel-body{padding:16px}
  .ncm-target-kanji{font-size:96px}
  .ncm-canvas-guide{font-size:140px}
  .ncm-mark{font-size:120px}
  .ncm-canvas-wrap{min-height:300px}
  .ncm-canvas-actions{display:grid;grid-template-columns:1fr}
  .ncm-canvas-actions .ncm-btn{width:100%}
  .ncm-model-svg{width:min(100%,220px);max-height:220px}
}


.ncm-grid{grid-template-columns:300px 1fr;align-items:start}
.ncm-atm-buttons{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.ncm-btn-grade{min-height:86px;padding:14px 14px;border-radius:18px}
.ncm-btn-grade strong{font-size:18px;margin-bottom:4px}
.ncm-btn-grade span{font-size:12px;line-height:1.45}
.ncm-remaining-card strong{font-size:24px}
.ncm-rail{gap:8px}
.ncm-grade-row{padding:10px 12px}
.ncm-practice-grid{display:grid;grid-template-columns:320px 1fr;gap:18px;align-items:start}
.ncm-target-card,.ncm-stage-card,.ncm-fun-panel{background:var(--ncm-panel);border:1px solid #e0d5bd;border-radius:24px;box-shadow:0 10px 24px rgba(42,30,8,.07)}
.ncm-target-card{padding:20px}
.ncm-stage-card{padding:18px}
.ncm-stage-switch{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.ncm-model-stage-large{min-height:520px}
.ncm-model-stage-large .ncm-model-svg{max-width:100%;max-height:500px}
.ncm-canvas-wrap{min-height:520px}
.ncm-fun-panel{margin-top:18px}
.ncm-fun-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:14px}
.ncm-fun-card{padding:16px;border-radius:18px;background:linear-gradient(180deg,#fffef9 0%,#f8f1df 100%);border:1px solid #ead9b0}
.ncm-fun-card span{display:block;font-size:12px;color:#6d614f;margin-bottom:8px}
.ncm-fun-card strong{display:block;font-size:20px;line-height:1.4;margin-bottom:6px}
.ncm-fun-card p{margin:0;color:#5d5341;font-size:13px;line-height:1.7}
.ncm-fun-card-wide{grid-column:span 2}
.ncm-reading-block + .ncm-reading-block{margin-top:12px}
.ncm-reading-block label{display:block;font-size:12px;font-weight:700;color:#5e523f;margin-bottom:8px}
.ncm-chip-row{display:flex;gap:8px;flex-wrap:wrap}
.ncm-chip{display:inline-flex;align-items:center;padding:7px 10px;border-radius:999px;background:#fff;border:1px solid #e4d6b7;font-size:13px;font-weight:700;color:#4c4336}
.ncm-chip-soft{background:#f8f3e9}
.ncm-inline-empty{display:inline-flex;align-items:center;padding:7px 10px;border-radius:999px;background:#f7f1e6;border:1px dashed #d8c7a0;font-size:12px;color:#6b604e}
.ncm-usage-list{margin:0;padding-left:18px;display:grid;gap:10px}
.ncm-usage-list li{color:#5d5341;font-size:13px;line-height:1.6}
.ncm-usage-list li strong{display:block;font-size:14px;margin-bottom:2px}
.ncm-usage-list li span{display:block;font-size:12px;color:#6f6554}
.ncm-note{line-height:1.7}
@media (max-width: 1100px){
  .ncm-grid{grid-template-columns:1fr}
  .ncm-practice-grid{grid-template-columns:1fr}
}
@media (max-width: 782px){
  .ncm-atm-buttons{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ncm-btn-grade{min-height:74px}
  .ncm-btn-grade strong{font-size:16px}
  .ncm-fun-grid{grid-template-columns:1fr}
  .ncm-fun-card-wide{grid-column:auto}
  .ncm-model-stage-large,.ncm-canvas-wrap{min-height:420px}
}

.ncm-fun-card p{margin:.35rem 0 0;line-height:1.7}.ncm-usage-list li{margin-bottom:.45rem}.ncm-chip-row{display:flex;flex-wrap:wrap;gap:8px}.ncm-inline-empty{opacity:.7}

/* 0.10.0 compact grades + note tabs */
.ncm-atm-buttons{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.ncm-btn-grade{min-height:72px;padding:12px 12px;border-radius:16px}
.ncm-btn-grade strong{font-size:16px;margin-bottom:2px}
.ncm-btn-grade span{font-size:11px;line-height:1.35}
.ncm-fun-basics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:14px}
.ncm-basic-card{padding:16px;border-radius:18px;background:linear-gradient(180deg,#fffef9 0%,#f8f1df 100%);border:1px solid #ead9b0}
.ncm-basic-card span{display:block;font-size:12px;color:#6d614f;margin-bottom:8px}
.ncm-basic-card strong{display:block;font-size:24px;line-height:1.35;margin-bottom:6px}
.ncm-basic-card p{margin:0;color:#5d5341;font-size:13px;line-height:1.7}
.ncm-note-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0 0}
.ncm-note-tab{appearance:none;border:1px solid #d7c7a2;background:linear-gradient(180deg,#fffefa 0%,#f5ead0 100%);color:#4f4434;padding:12px 16px;border-radius:16px 16px 6px 6px;font-weight:800;cursor:pointer;box-shadow:0 6px 12px rgba(88,63,18,.08)}
.ncm-note-tab.is-active{background:linear-gradient(180deg,#fff7c7 0%,#f2df9e 100%);transform:translateY(2px);box-shadow:none;border-color:#cda44d}
.ncm-info-sheet{margin-top:-1px;padding:18px;border-radius:0 20px 20px 20px;background:linear-gradient(180deg,#fffef9 0%,#fcf5e6 100%);border:1px solid #e3d4ae;box-shadow:0 10px 24px rgba(42,30,8,.06)}
.ncm-info-sheet-head{display:grid;gap:4px;margin-bottom:14px}
.ncm-info-sheet-head strong{font-size:22px;line-height:1.35}
.ncm-info-sheet-head span{font-size:13px;color:#6d614f}
.ncm-info-main-text{margin:0;color:#514838;font-size:16px;line-height:1.9}
.ncm-info-subsection{margin-top:16px}
.ncm-info-subsection label,.ncm-mini-mission label,.ncm-mission-box label{display:block;font-size:12px;font-weight:700;color:#6a5e4b;margin-bottom:8px}
.ncm-mini-mission{margin-top:16px;padding-top:14px;border-top:1px dashed #dfd0ab}
.ncm-mini-mission p{margin:0;font-size:14px;line-height:1.8;color:#5b5140}
.ncm-mission-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.ncm-mission-box{padding:14px;border-radius:16px;background:#fffdf7;border:1px solid #ead9b0}
.ncm-mission-box strong{display:block;font-size:24px;line-height:1.35;margin-bottom:6px}
.ncm-mission-box p{margin:0;font-size:13px;line-height:1.7;color:#5d5341}
.ncm-usage-list-large li{font-size:15px;line-height:1.9}
@media (max-width: 1100px){
  .ncm-atm-buttons{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ncm-fun-basics,.ncm-mission-grid{grid-template-columns:1fr}
}
@media (max-width: 782px){
  .ncm-btn-grade{min-height:66px;padding:10px}
  .ncm-note-tabs{gap:8px}
  .ncm-note-tab{padding:10px 12px;font-size:13px}
  .ncm-info-sheet{border-radius:0 16px 16px 16px;padding:14px}
}

.ncm-login-error{margin:12px 0;padding:12px 14px;border-radius:16px;background:#fff1f0;border:1px solid #f0b8b2;color:#8b2f25;font-weight:700;}
.ncm-login-note{margin-top:12px;color:#6d6250;font-size:14px;line-height:1.7;}
.ncm-login-box .ncm-btn{display:inline-flex;justify-content:center;align-items:center;width:100%;margin-top:10px;}


.ncm-print-actions{display:grid;gap:8px;margin-top:8px}
.ncm-btn-print{width:100%;justify-content:center}

.ncm-print-card{margin-top:14px;padding:14px;border:1px solid #e6dcc7;border-radius:16px;background:#fffaf0;display:grid;gap:10px}
.ncm-print-card h4{margin:0;font-size:16px}
.ncm-print-field{display:grid;gap:6px}
.ncm-print-field label{font-size:12px;color:#6b5a41;font-weight:700}
.ncm-select{width:100%;border:1px solid #d8ccb6;border-radius:12px;padding:10px 12px;background:#fff;font:inherit}


.ncm-search-panel{margin-top:16px}
.ncm-search-bar{display:flex;gap:10px;align-items:center}
.ncm-search-input{width:100%;min-width:0;border:1px solid #d6c6aa;border-radius:14px;padding:12px 14px;font-size:16px;background:#fffdf7}
.ncm-search-results{display:grid;gap:8px;margin-top:12px;max-height:300px;overflow:auto}
.ncm-search-card{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;text-align:left;border:1px solid #e1d5c0;background:#fff;border-radius:14px;padding:10px 12px;cursor:pointer}
.ncm-search-card.is-selected{border-color:#7b5cff;background:#f4efff;box-shadow:0 0 0 2px rgba(123,92,255,.1) inset}
.ncm-search-main{display:flex;align-items:center;gap:10px}
.ncm-search-main strong{font-size:24px;line-height:1}
.ncm-search-main span,.ncm-search-sub{font-size:12px;color:#695a46}
.ncm-search-sub{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.ncm-adventure-card{border-radius:20px;padding:16px;background:linear-gradient(180deg,#fffaf0 0%,#f7f0dd 100%);border:1px solid #e5d4ae;margin-bottom:12px}
.ncm-adventure-card strong{display:block;font-size:20px;margin-bottom:6px;color:#5a4218}
.ncm-adventure-card p{margin:0 0 12px;color:#6a5530}


/* 0.14.2 family-friendly guide and log */
.ncm-guide-card{margin:14px 0 4px;padding:16px;border-radius:22px;background:linear-gradient(180deg,#fff8ef 0%,#f7f1df 100%);border:1px solid #e7d8b7;box-shadow:0 10px 22px rgba(61,45,16,.06)}
.ncm-guide-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:12px}
.ncm-guide-head strong{font-size:16px;line-height:1.45}
.ncm-guide-head span{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;background:#fff;border:1px solid #e4d5b4;font-size:12px;font-weight:700;color:#5b4f3c}
.ncm-guide-grid{display:grid;gap:10px}
.ncm-guide-box{padding:12px 14px;border-radius:16px;background:#fffdf7;border:1px solid #eadfc8}
.ncm-guide-box label{display:block;font-size:12px;font-weight:700;color:#6d614f;margin-bottom:6px}
.ncm-guide-box p{margin:0;font-size:13px;line-height:1.7;color:#504635}
.ncm-guide-steps{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.ncm-log-hero{display:flex;justify-content:space-between;align-items:stretch;gap:12px;margin-bottom:14px;padding:16px;border-radius:20px;background:linear-gradient(180deg,#fff9ec 0%,#f5e7bf 100%);border:1px solid #dcc07c}
.ncm-log-kicker{display:block;font-size:12px;font-weight:700;color:#6d5a39;margin-bottom:6px}
.ncm-log-hero strong{display:block;font-size:24px;line-height:1.3;margin-bottom:6px}
.ncm-log-hero p{margin:0;font-size:13px;line-height:1.7;color:#5b513f}
.ncm-log-today{min-width:126px;border-radius:16px;background:rgba(255,255,255,.78);border:1px solid #e1cf9f;padding:12px 14px;text-align:center;display:grid;align-content:center}
.ncm-log-today span{font-size:12px;color:#6d614f;margin-bottom:6px}
.ncm-log-today strong{font-size:26px;line-height:1.1}
.ncm-mastered-strip{margin-top:12px;display:flex;flex-wrap:wrap;gap:8px}
@media (max-width: 782px){
  .ncm-guide-head,.ncm-log-hero{display:grid}
  .ncm-log-today{min-width:0}
}


/* compact learner-first layout */
.ncm-grid{grid-template-columns:300px 1fr;gap:18px}
.ncm-panel-body-compact{padding:18px}
.ncm-atm-buttons{gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}
.ncm-btn-grade{min-height:64px;padding:12px 10px;border-radius:16px;text-align:center}
.ncm-btn-grade strong{font-size:16px;margin-bottom:2px}
.ncm-btn-grade span{font-size:11px;line-height:1.2}
.ncm-remaining-card{margin-top:14px;padding:14px 16px}
.ncm-remaining-top{font-size:12px}
.ncm-remaining-card strong{font-size:26px}
.ncm-remaining-card p{font-size:12px;line-height:1.6;margin:6px 0 10px}
.ncm-print-card{margin-top:12px;padding:12px}
.ncm-print-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ncm-print-actions .ncm-btn{width:100%;padding:11px 10px;font-size:13px}
.ncm-target-meta{grid-template-columns:1fr 1fr}
.ncm-main-wrap{gap:16px}
.ncm-more-panel details + details{margin-top:10px}
.ncm-fold{border:1px solid #e6dcc7;border-radius:18px;background:#fffaf3;overflow:hidden}
.ncm-fold summary{list-style:none;cursor:pointer;padding:14px 16px;font-weight:800;font-size:16px;display:flex;align-items:center;justify-content:space-between}
.ncm-fold summary::-webkit-details-marker{display:none}
.ncm-fold summary::after{content:'＋';font-size:20px;line-height:1;color:#6b5a41}
.ncm-fold[open] summary::after{content:'－'}
.ncm-fold-body{padding:0 16px 16px}
.ncm-guide-grid{grid-template-columns:1fr;gap:8px}
.ncm-guide-box{padding:10px 12px}
.ncm-guide-box p{font-size:12px;line-height:1.7}
.ncm-guide-steps{margin-top:8px}
.ncm-dashboard-grid{display:none}
.ncm-search-panel{margin-top:0}
.ncm-list-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.ncm-char-card{padding:12px}
.ncm-char-big{font-size:38px}
.ncm-char-meta{font-size:11px}
@media (max-width: 1080px){
  .ncm-grid{grid-template-columns:1fr}
}
@media (max-width: 782px){
  .ncm-atm-buttons{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ncm-print-actions{grid-template-columns:1fr}
  .ncm-list-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
