  /* ---------- シェル ---------- */
  #app{display:flex;min-height:100vh;}
  aside{width:240px;flex-shrink:0;display:flex;flex-direction:column;color:#F2F0EA;position:relative;overflow:hidden;
    background:linear-gradient(180deg,var(--shell2),var(--shell));border-right:1px solid rgba(198,161,91,.22);}
  aside::before{content:"";position:absolute;top:-50px;left:-30px;right:-30px;height:150px;pointer-events:none;z-index:0;
    background:radial-gradient(120px 80px at 22% 30%,rgba(198,161,91,.45),transparent 70%),
      radial-gradient(150px 90px at 82% 12%,rgba(111,214,255,.28),transparent 70%);
    filter:blur(16px);opacity:.75;animation:auroraDrift 8s ease-in-out infinite alternate;}
  @keyframes auroraDrift{to{transform:translate(24px,10px);}}
  aside>*{position:relative;z-index:1;}
  .mark{width:22px;height:auto;flex-shrink:0;}
  .as-top{padding:20px;display:flex;align-items:center;gap:8px;border-bottom:1px solid rgba(255,255,255,.08);}
  @media(prefers-reduced-motion:reduce){aside::before{animation:none;}}
  nav.side{flex:1;padding:16px 12px;overflow-y:auto;}
  .grp{padding:16px 12px 6px;font-family:var(--font-en);font-size:10px;letter-spacing:.26em;
    color:rgba(228,201,126,.9);font-weight:600;}
  .nav-i{width:100%;display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:8px;
    font-size:14px;color:rgba(255,255,255,.75);text-align:left;transition:background .15s;}
  .nav-i:hover{background:rgba(198,161,91,.09);}
  .nav-i.on{background:linear-gradient(90deg,rgba(198,161,91,.18),transparent);font-weight:700;color:#fff;position:relative;}
  .nav-i.on::before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:3px;border-radius:0 3px 3px 0;
    background:linear-gradient(180deg,#E4C97E,#C6A15B);box-shadow:0 0 14px rgba(198,161,91,.95);}
  .nav-i.soon{color:rgba(255,255,255,.35);cursor:default;}
  .nav-i.soon:hover{background:none;}
  .badge{margin-left:auto;font-size:9px;padding:2px 6px;border-radius:4px;background:rgba(255,255,255,.1);color:rgba(255,255,255,.5);}
  .as-bot{padding:16px 12px;border-top:1px solid rgba(255,255,255,.1);}
  .as-bot .who{padding:0 12px 8px;font-size:12px;}
  .as-bot .who small{color:rgba(255,255,255,.5);font-size:10px;display:block;}
  .logout{width:100%;display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:8px;
    font-size:14px;color:rgba(255,255,255,.7);}
  .logout:hover{background:rgba(255,255,255,.05);}

  main{flex:1;min-width:0;}
  header.top{display:none;position:sticky;top:0;z-index:30;height:56px;align-items:center;
    justify-content:space-between;padding:0 16px;color:#fff;
    background:linear-gradient(180deg,var(--shell2),var(--shell));
    box-shadow:0 1px 0 rgba(198,161,91,.3);}
  header.top .logout{width:auto;font-size:12px;padding:0;}
  .content{padding:16px;max-width:100%;}
  .content.wide{max-width:100%;}
  nav.bottom{display:none;}

  h1.pg{font-size:25px;font-weight:900;margin:0;letter-spacing:.02em;}
  .sub{font-size:14px;color:var(--muted);margin:4px 0 0;}
  .hello{font-size:14px;color:var(--muted);margin:0;}
  .email-h{font-size:18px;font-weight:700;margin:2px 0 24px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

  .stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;margin-bottom:32px;}
  .stat{background:var(--card-glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
    border:1px solid var(--line);border-radius:16px;
    padding:20px;text-align:left;position:relative;overflow:hidden;
    box-shadow:0 30px 70px -40px var(--shadow);transition:transform .2s,box-shadow .2s,border-color .2s;}
  /* 金のリングがゆっくり回る（HPのプランカードと同じ） */
  .stat::before{content:"";position:absolute;inset:0;pointer-events:none;
    background:conic-gradient(from 0deg,transparent 0 72%,rgba(198,161,91,.14) 82%,transparent 92%);
    animation:statSpin 9s linear infinite;}
  @keyframes statSpin{to{transform:rotate(360deg);}}
  .stat>*{position:relative;}
  .stat:hover{transform:translateY(-3px);border-color:var(--gold-line);box-shadow:0 24px 50px -28px var(--glow);}
  .stat .ic,.svc .t .ic{width:38px;height:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;
    color:var(--gold) !important;border:1px solid var(--line) !important;
    background:linear-gradient(135deg,rgba(228,201,126,.22),rgba(198,161,91,.06)) !important;
    box-shadow:none !important;}
  .stat .num{font-family:var(--font-en);font-size:34px;font-weight:700;margin-top:14px;color:var(--ink);
    letter-spacing:.01em;line-height:1.1;}
  .stat .num::before{content:"";display:block;width:26px;height:3px;border-radius:3px;margin-bottom:8px;
    background:var(--accent-grad);box-shadow:0 0 12px var(--glow);}
  .stat .lbl{font-size:12px;color:var(--muted);margin-top:4px;}
  .sec{display:flex;align-items:center;gap:8px;margin-bottom:12px;}
  .sec h2{font-family:var(--font-en);font-size:12px;font-weight:700;color:var(--gold);margin:0;letter-spacing:.24em;}
  .sec .rule{height:1px;background:linear-gradient(90deg,var(--gold-line),transparent);opacity:.6;flex:1;}
  .svc{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
  .svc .t{background:var(--card-glass);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
    border:1px solid var(--line);border-radius:16px;padding:20px;
    text-align:left;width:100%;transition:transform .22s,box-shadow .22s,border-color .22s;}
  .svc .t:hover{transform:translateY(-4px);border-color:var(--gold-line);box-shadow:0 24px 50px -30px var(--glow);}
  .svc .t .h{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;}
  .svc .t .ic{width:38px;height:38px;border-radius:11px;color:var(--gold);display:flex;align-items:center;justify-content:center;
    background:linear-gradient(135deg,rgba(228,201,126,.2),rgba(198,161,91,.05));border:1px solid var(--line);}
  .svc .t .name{font-size:14px;font-weight:600;}
  .svc .t .note{font-size:12px;color:var(--faint);margin-top:4px;}
  .svc .add{border:1px dashed var(--line2);border-radius:12px;padding:20px;display:flex;flex-direction:column;
    align-items:center;justify-content:center;color:var(--faint);font-size:12px;gap:6px;}

  .pg-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:4px;}
  .add-btn{flex-shrink:0;display:flex;align-items:center;gap:6px;color:var(--on-accent);
    background:var(--accent-grad);box-shadow:0 8px 20px -10px var(--glow);
    border-radius:9px;padding:8px 14px;font-size:14px;font-weight:700;transition:filter .15s,transform .15s;}
  .add-btn:hover{filter:brightness(1.06);transform:translateY(-1px);}
  .search{position:relative;max-width:320px;margin:20px 0 12px;}
  .search input{width:100%;padding:8px 12px 8px 34px;font-size:14px;background:var(--card);color:var(--ink);
    border:1px solid var(--line);border-radius:8px;outline:none;}
  .search input:focus{border-color:var(--teal-b);box-shadow:0 0 0 3px var(--glow);}
  .search svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--faint);}

  .list{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden;}
  .row{display:flex;align-items:center;gap:12px;padding:12px 16px;border-top:1px solid var(--surface2);}
  .row:first-child{border-top:none;}
  .row:hover{background:var(--surface);}
  .av{width:32px;height:32px;border-radius:8px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;font-weight:700;}
  .row .main{min-width:0;flex:1;}
  .row .main .n{font-size:14px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .row .main .s{font-size:12px;color:var(--faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .act{padding:6px;border-radius:6px;color:var(--muted);}
  .act:hover{background:var(--surface2);}
  .act.del{color:var(--shu);} .act.del:hover{background:rgba(178,58,46,.12);}
  .empty{padding:48px 16px;text-align:center;}
  .empty .m{font-size:14px;color:var(--muted);font-weight:500;}
  .empty .lnk{margin-top:12px;font-size:14px;font-weight:600;color:var(--gold);}
  .count{font-size:12px;color:var(--faint);margin-top:12px;}

  .modal-bg{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;
    padding:16px;background:rgba(22,35,59,.45);}
  .modal{background:var(--card);color:var(--ink);border:1px solid var(--line);
    border-radius:16px;width:100%;max-width:512px;max-height:88vh;display:flex;flex-direction:column;
    box-shadow:0 24px 50px -12px var(--shadow);}
  .modal .mh{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--surface2);}
  .modal .mh h3{margin:0;font-weight:700;}
  .modal .mb{padding:20px;overflow-y:auto;display:grid;grid-template-columns:1fr 1fr;gap:14px 16px;}
  .modal .mb .wide{grid-column:1 / -1;}
  .modal .mf{display:flex;justify-content:flex-end;gap:8px;padding:16px 20px;border-top:1px solid var(--surface2);}
  .req{color:var(--shu);margin-left:2px;}
  .ghost{padding:8px 16px;border-radius:8px;font-size:14px;font-weight:500;color:var(--muted);}
  .ghost:hover{background:var(--surface2);}
  /* 画面右上の操作ボタン（自動作成・まとめてPDF・監査ログ・印刷など）。
     全部「ゴールドのネオン」で統一（社長指示 2026-09-18）。昼夜ともダークなガラス面にゴールドの縁取り＋発光アイコン、
     ホバーで光が横切って浮き上がる。.hi / .gold は互換のため残すが見た目は同じ */
  .tool,.tool.hi,.tool.gold{position:relative;display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:12px;
    font-size:13px;font-weight:700;letter-spacing:.02em;color:#F7EFD9;white-space:nowrap;overflow:hidden;text-shadow:none;
    background:linear-gradient(135deg,#1A2A48,#0C1424);
    border:1px solid rgba(231,200,119,.58);
    box-shadow:inset 0 0 0 1px rgba(231,200,119,.12), inset 0 1px 0 rgba(255,255,255,.08),
      0 0 14px -4px rgba(231,200,119,.65), 0 8px 20px -12px rgba(0,0,0,.7);
    animation:none;transition:transform .18s,box-shadow .18s,border-color .18s,filter .18s;}
  .tool svg,.tool.hi svg,.tool.gold svg{color:#F3E2AE;flex-shrink:0;filter:drop-shadow(0 0 5px rgba(231,200,119,.95));}
  /* 光が横切る */
  .tool::after{content:"";position:absolute;inset:0;pointer-events:none;
    background:linear-gradient(110deg,transparent 30%,rgba(231,200,119,.32) 50%,transparent 70%);
    transform:translateX(-120%);transition:transform .55s ease;}
  .tool:hover::after{transform:translateX(120%);}
  .tool:hover,.tool.hi:hover,.tool.gold:hover{transform:translateY(-2px);border-color:rgba(231,200,119,1);
    box-shadow:inset 0 0 0 1px rgba(231,200,119,.28), 0 0 24px -2px rgba(231,200,119,.9), 0 14px 26px -14px rgba(0,0,0,.8);}
  .tool:active{transform:translateY(0);filter:brightness(.95);}
  .tool:disabled{opacity:.55;transform:none;box-shadow:none;cursor:default;}
  .tool:disabled::after{display:none;}
  /* 件数バッジ */
  .tool .cnt,.tool.hi .cnt{font-size:11px;font-weight:800;color:#1A1408;background:#E7C877;border-radius:999px;padding:1px 8px;line-height:1.5;
    box-shadow:0 0 10px rgba(231,200,119,.9);}
  .tool .cnt:empty{display:none;}
  @media(prefers-reduced-motion:reduce){ .tool,.tool::after{transition:none;} }
  .save{display:flex;align-items:center;gap:6px;padding:8px 16px;border-radius:9px;font-size:14px;font-weight:700;
    color:var(--on-accent);background:var(--accent-grad);box-shadow:0 8px 20px -10px var(--glow);transition:filter .15s,transform .15s;}
  .save:hover{filter:brightness(1.06);transform:translateY(-1px);} .save:disabled{opacity:.5;}
  .icx{width:1em;height:1em;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}


  .imgf{display:flex;gap:12px;align-items:flex-start;}
  .imgp{width:74px;height:74px;flex-shrink:0;border:1px solid var(--line);border-radius:8px;
    display:flex;align-items:center;justify-content:center;background:var(--surface);overflow:hidden;}
  .imgp img{max-width:100%;max-height:100%;object-fit:contain;}
  .imgp span{font-size:11px;color:var(--faint);}
  .imgb{display:flex;flex-direction:column;gap:6px;align-items:flex-start;padding-top:2px;}
  .ghost.sm{border:1px solid var(--line);padding:5px 10px;font-size:12px;border-radius:6px;background:var(--card);}
  .ghost.sm.del{color:var(--shu);}
  .theme-btn{margin-bottom:4px;border:1px solid rgba(198,161,91,.38);background:rgba(198,161,91,.12);}
  .theme-btn:hover{background:rgba(198,161,91,.2);}
  .theme-btn #theme-ic{display:flex;align-items:center;}
