:root{
  --cream:#f6f1e7;--cream2:#eee6d7;--paper:#fcf9f2;--ink:#2b241d;--muted:#75695b;
  --gold:#c49a4e;--gold2:#e0c58d;--navy:#273142;--admin-bg:#f5f7fa;--line:#dfe5eb;
  --green:#3d8b5c;--orange:#d38b37;--red:#c44b4b;--blue:#4b6eb4;--white:#fff;
  --shadow:0 14px 38px rgba(35,30,24,.10)
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic",Meiryo,sans-serif;color:var(--ink);background:var(--admin-bg)}
button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit}.hidden{display:none!important}
.muted{color:var(--muted)}.gold{color:var(--gold)}.green{color:var(--green)}.red{color:var(--red)}.orange{color:var(--orange)}.blue{color:var(--blue)}
.pill{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;font-size:12px;background:#f0f3f7;color:#58616e}.pill.green{background:#e9f4ed;color:var(--green)}.pill.orange{background:#fff3df;color:var(--orange)}.pill.red{background:#ffeaea;color:var(--red)}.pill.blue{background:#edf3ff;color:var(--blue)}
.btn{border:0;border-radius:14px;padding:12px 18px;background:var(--navy);color:#fff;font-weight:700}.btn.secondary{background:#f0f3f6;color:#28313f;border:1px solid var(--line)}.btn.gold{background:var(--gold);color:#fff}.btn.green{background:var(--green)}.btn.danger{background:var(--red)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.block{width:100%}.btn.small{padding:9px 13px;border-radius:12px;font-size:13px}
.field{margin:0 0 18px}.field label{display:block;font-size:13px;font-weight:700;margin:0 0 8px}.input,.select,.textarea{width:100%;border:1px solid #d8cdb9;background:#fffdf8;border-radius:14px;padding:14px 15px;color:var(--ink);outline:none}.input:focus,.select:focus,.textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(196,154,78,.10)}.textarea{min-height:108px;resize:vertical}.help{font-size:12px;color:var(--muted);margin-top:6px}.row{display:flex;gap:12px;align-items:center}.row.wrap{flex-wrap:wrap}.grow{flex:1}.space{justify-content:space-between}
.card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:0 1px 1px rgba(0,0,0,.02)}
.notice{border:1px solid #e5d2ad;background:#fff8ea;border-radius:14px;padding:13px 16px}.notice.green{border-color:#bcd9c5;background:#eef8f1;color:#316d48}.notice.red{border-color:#efb7b7;background:#fff1f1;color:#9f3d3d}

/* launcher */
.launcher{max-width:1100px;margin:0 auto;padding:55px 24px}.launcher h1{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:44px;margin:0 0 10px}.role-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:32px}.role-card{display:block;text-decoration:none;background:#fff;border:1px solid var(--line);border-radius:24px;padding:28px;min-height:210px;box-shadow:var(--shadow);transition:.2s}.role-card:hover{transform:translateY(-3px)}.role-card strong{font-size:24px;display:block;margin:18px 0 8px}.role-icon{width:62px;height:62px;border-radius:20px;background:var(--cream);display:grid;place-items:center;font-size:28px}.devbar{margin-top:30px;padding:18px;border:1px dashed #b9c0c9;border-radius:16px;background:#fbfcfd}

/* customer */
.customer-body{background:#17130f;min-height:100vh}.phone{max-width:480px;min-height:100svh;margin:0 auto;background:var(--cream);position:relative;overflow:hidden;box-shadow:0 0 60px rgba(0,0,0,.45)}
.c-screen{min-height:100svh;padding:22px 20px 110px;background:var(--cream)}.c-header{text-align:center;padding:6px 0 18px}.musubi-mark{width:84px;height:50px;position:relative;margin:0 auto 8px}.musubi-mark:before,.musubi-mark:after{content:"";position:absolute;top:0;width:48px;height:48px;border:4px solid var(--gold);border-radius:50%}.musubi-mark:before{left:2px}.musubi-mark:after{right:2px}.brandname{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;letter-spacing:.24em;font-size:13px}.c-title{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:28px;line-height:1.5;text-align:center;margin:16px 0 6px}.c-sub{text-align:center;color:var(--muted);font-size:13px;line-height:1.7}.c-card{border:1px solid #dfd1b8;border-radius:22px;background:var(--paper);padding:20px;margin-top:22px}.c-actions{display:flex;gap:12px;margin-top:24px}.c-actions .btn{flex:1;border-radius:999px;padding:14px 16px}.progress{height:6px;background:#e5dac6;border-radius:99px;overflow:hidden;margin:7px 0 18px}.progress>i{display:block;height:100%;background:var(--gold);border-radius:99px}.step-label{font-size:11px;color:var(--gold);font-weight:700}.chips{display:flex;gap:10px;flex-wrap:wrap}.chip{border:1px solid #ded2bd;background:#fffdf7;border-radius:999px;padding:10px 14px;font-size:13px}.chip.selected{border-color:var(--gold);background:#eee0c6}.option-card{display:block;cursor:pointer;border:1px solid #ddd1bc;background:#fffdf8;border-radius:20px;padding:18px;margin:12px 0;position:relative}.option-card.selected{border:2px solid var(--gold);background:#f3e9d5}.option-card input{margin-right:10px}.option-card h3{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;margin:0 0 7px;font-size:20px}.option-card p{font-size:13px;line-height:1.7;color:var(--muted);margin:6px 0}.candidate{border:1px solid #ddd1bc;border-radius:20px;padding:18px;margin:12px 0;background:#fffdf8}.candidate.selected{border:2px solid var(--gold);background:#f5ead6}.candidate-name{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-weight:700;font-size:36px}.candidate-reading{font-size:13px;color:var(--muted);margin-left:8px}.candidate-tags{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0}.candidate-tags span{font-size:11px;padding:5px 9px;border-radius:99px;background:#f1eadc}.c-bottomnav{position:sticky;bottom:0;background:rgba(246,241,231,.97);backdrop-filter:blur(8px);border-top:1px solid #ded5c5;display:grid;grid-template-columns:repeat(5,1fr);padding:9px 4px 12px;z-index:10}.c-bottomnav button{border:0;background:transparent;color:#8b7e6e;font-size:10px;padding:7px 1px}.c-bottomnav button.active{color:var(--gold);font-weight:700}.meaning-block{border:1px solid #e0d4bf;border-radius:20px;padding:18px;background:#fffdf8;margin:12px 0}.meaning-kanji{font-family:"Yu Mincho",serif;font-size:42px;font-weight:700}.photo-placeholder{aspect-ratio:4/3;background:linear-gradient(145deg,#d8d6ce,#b7bdac);border-radius:18px;display:grid;place-items:center;color:#fff;text-align:center;overflow:hidden}.photo-placeholder img{width:100%;height:100%;object-fit:cover}
.entrance{min-height:100svh;position:relative;background:#111;color:white;overflow:hidden}.entrance video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.9) brightness(.75)}.entrance-overlay{position:absolute;inset:0;background:linear-gradient(rgba(10,7,5,.35),rgba(10,7,5,.1) 45%,rgba(10,7,5,.65))}.entrance-content{position:relative;z-index:3;min-height:100svh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:30px 28px 110px;pointer-events:none}.entrance .musubi-mark:before,.entrance .musubi-mark:after{border-color:#efd18d}.entrance h1{font-family:"Yu Mincho",serif;font-size:39px;line-height:1.45;letter-spacing:.08em;margin:34px 0 12px;text-shadow:0 4px 20px rgba(0,0,0,.45)}.entrance .enter-btn{position:absolute;z-index:5;bottom:45px;left:9%;width:82%;border:1px solid #e7ca8d;background:rgba(24,18,13,.42);backdrop-filter:blur(12px);color:white;border-radius:999px;padding:16px;font-weight:700;letter-spacing:.16em;cursor:pointer;pointer-events:auto}.noren{position:absolute;inset:0;z-index:9;pointer-events:none;display:none}.noren.show{display:block}.noren-left,.noren-right{position:absolute;top:0;width:50%;height:100%;background:linear-gradient(#9f7952,#896441)}.noren-left{left:0;animation:openL 1.6s forwards}.noren-right{right:0;animation:openR 1.6s forwards}@keyframes openL{to{transform:translateX(-96%)}}@keyframes openR{to{transform:translateX(96%)}}
.voice-box{border:1px solid #d5b980;border-radius:24px;padding:24px;text-align:center;background:#fffdf8}.mic{width:132px;height:132px;border:2px solid var(--gold);border-radius:50%;margin:0 auto 16px;display:grid;place-items:center;font-size:45px;background:#f1e8d8}.waiting-ring{width:150px;height:150px;border:4px solid #e3c58c;border-radius:50%;margin:28px auto;position:relative;animation:spin 8s linear infinite}.waiting-ring:before,.waiting-ring:after{content:"";position:absolute;width:62px;height:62px;border:3px solid var(--gold);border-radius:50%;top:40px}.waiting-ring:before{left:18px}.waiting-ring:after{right:18px}@keyframes spin{to{transform:rotate(360deg)}}

/* admin shared */
.admin{display:grid;grid-template-columns:260px 1fr;min-height:100vh;background:var(--admin-bg)}.sidebar{background:#202631;color:#fff;padding:24px 16px;position:sticky;top:0;height:100vh}.sidebar .logo{font-weight:800;font-size:20px;letter-spacing:.04em;margin:0 12px 6px}.sidebar .sub{font-size:12px;color:#9fa9b6;margin:0 12px 28px}.menu{display:flex;flex-direction:column;gap:7px}.menu button{width:100%;text-align:left;border:0;background:transparent;color:#bec6d1;padding:13px 15px;border-radius:10px;font-size:14px}.menu button.active{background:#3b4659;color:#fff;border-left:4px solid var(--gold);padding-left:11px;font-weight:700}.admin-main{min-width:0}.topbar{height:72px;background:#fff;border-bottom:1px solid #eef1f4;display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:20}.topbar .bell{width:34px;height:34px;border:2px solid #4b5563;border-radius:50%;display:inline-grid;place-items:center;position:relative;font-size:15px}.topbar .bell:after{content:"";position:absolute;right:-2px;top:-2px;width:10px;height:10px;background:var(--red);border-radius:50%;border:2px solid white}.admin-content{padding:28px;max-width:1450px}.admin-title{font-size:28px;margin:0 0 4px}.admin-sub{color:var(--muted);font-size:14px;margin:0 0 22px}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.kpi{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px}.kpi span{display:block;color:var(--muted);font-size:12px}.kpi strong{display:block;font-size:28px;margin-top:11px}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.tabs button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:9px 15px;color:#495361}.tabs button.active{background:var(--navy);color:#fff;border-color:var(--navy)}
.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:16px}.table{width:100%;border-collapse:collapse;min-width:850px}.table th,.table td{padding:13px 14px;border-bottom:1px solid #edf0f3;text-align:left;font-size:13px;vertical-align:middle}.table th{font-size:11px;color:var(--muted);background:#f6f8fa}.table tr:last-child td{border-bottom:0}.table .name{font-weight:700;font-size:14px}.split{display:grid;grid-template-columns:1.1fr .9fr;gap:18px}.two{display:grid;grid-template-columns:1fr 1fr;gap:18px}.three{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.action-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px}.action-card h3{margin:0 0 14px}.status-line{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #edf0f3;padding:12px 0}.status-line:last-child{border-bottom:0}.section-title{font-size:18px;margin:26px 0 12px}.modal-backdrop{position:fixed;inset:0;background:rgba(15,18,24,.55);z-index:99;display:grid;place-items:center;padding:24px}.modal{background:#fff;border-radius:20px;max-width:760px;width:100%;max-height:88vh;overflow:auto;padding:24px;box-shadow:0 30px 90px rgba(0,0,0,.25)}.modal h2{margin:0 0 16px}.close{float:right;border:0;background:#f1f3f5;border-radius:10px;padding:7px 10px}.accordion{border:1px solid var(--line);background:#fff;border-radius:15px;margin:9px 0;overflow:hidden}.accordion-head{padding:15px;display:grid;grid-template-columns:1.3fr .7fr .8fr 1fr auto;align-items:center;gap:10px}.accordion-body{border-top:1px solid var(--line);padding:16px;background:#fbfcfd}.chev{width:11px;height:11px;border-right:2px solid #748091;border-bottom:2px solid #748091;transform:rotate(45deg);display:inline-block}.chev.up{transform:rotate(225deg)}.stock-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px}.stock-count{font-size:36px;font-weight:800}.warn-text{color:var(--red);font-weight:700}.dropzone{border:2px dashed #cbd3dc;border-radius:18px;padding:35px;text-align:center;background:#fbfcfd}.preview-img{width:100%;max-height:360px;object-fit:cover;border-radius:16px}.log{font-size:12px;color:#5c6673}.checkbox{display:flex;gap:10px;align-items:center}.checkbox input{width:18px;height:18px}.chart-bars{height:180px;display:flex;align-items:end;gap:14px;padding:16px 8px;border-bottom:1px solid var(--line)}.chart-bars i{flex:1;background:#c7d2e5;border-radius:8px 8px 0 0;min-height:12px}.chart-bars i:nth-child(2n){background:#d9c18d}

@media(max-width:900px){.role-grid{grid-template-columns:1fr}.admin{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.menu{display:grid;grid-template-columns:repeat(2,1fr)}.topbar{position:relative}.kpi-grid,.two,.three,.split{grid-template-columns:1fr}.admin-content{padding:18px}.accordion-head{grid-template-columns:1fr 1fr}.accordion-head>*:nth-child(3),.accordion-head>*:nth-child(4){display:none}}

.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:#f5f1e8}.login-card{width:min(560px,100%);background:#fffdf8;border:1px solid #ded2ba;border-radius:28px;padding:34px;box-shadow:0 20px 60px rgba(40,32,22,.08)}.login-card h1{margin:18px 0 6px}.login-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}.login-tabs button{border:1px solid #d9ccb3;background:#f8f3e8;border-radius:999px;padding:8px 12px;cursor:pointer}.hidden{display:none!important}code{background:#f1ece2;padding:2px 6px;border-radius:6px}.topbar .btn{margin-left:10px}

/* お客様画面：言語切替・処理中表示 */
.c-header{position:relative}.lang-switch{position:absolute;top:0;right:0;border:1px solid #ded2bd;background:#fffdf7;color:var(--ink);border-radius:999px;padding:6px 10px;font-size:12px}.lang-switch.dark{position:static;background:rgba(24,18,13,.42);color:#fff;border-color:#e7ca8d;backdrop-filter:blur(8px)}.lang-switch.dark option{color:#000}.entrance-lang{position:absolute;top:16px;right:16px;z-index:6}
.btn.is-busy{opacity:.75;cursor:progress}.spinner{display:inline-block;width:14px;height:14px;margin-right:8px;vertical-align:-2px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:musubi-spin .8s linear infinite}@keyframes musubi-spin{to{transform:rotate(360deg)}}
