:root{--ink: #1f2420;--ink-2: #4a514b;--muted: #747b74;--line: #e3e2da;--bg: #f7f6f1;--surface: #ffffff;--surface-2: #f1f0ea;--accent: #b5462b;--accent-soft: #f6e6df;--ok: #1d6b45;--ok-soft: #e1efe6;--warn: #8a5a10;--warn-soft: #f7ecd8;--crit: #a3271d;--crit-soft: #f8e1de;--radius: 10px;--shadow: 0 1px 2px rgba(0, 0, 0, .05)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Noto Sans JP,sans-serif;color:var(--ink);background:var(--bg);line-height:1.65;font-size:15px}a{color:var(--accent)}h1,h2,h3{line-height:1.35;margin:0 0 8px}h1{font-size:1.3rem}h2{font-size:1.05rem}h3{font-size:.95rem}p{margin:0 0 8px}.muted{color:var(--muted);font-size:.85rem}.small{font-size:.8rem}.hidden{display:none!important}.stack>*+*{margin-top:12px}.row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.spacer{flex:1}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.card+.card{margin-top:12px}.card h2{margin-bottom:10px}.btn{appearance:none;border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:9px 16px;border-radius:8px;font:inherit;font-size:.9rem;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px}.btn:hover{border-color:var(--ink-2)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.btn-primary:hover{background:#9c3a22;border-color:#9c3a22}.btn-danger{color:var(--crit);border-color:#e6c3be}.btn-danger:hover{background:var(--crit-soft);border-color:var(--crit)}.btn-block{width:100%}.btn-lg{min-height:50px;font-size:1rem}.btn-sm{min-height:30px;padding:4px 10px;font-size:.8rem}.btn-link{border:0;background:none;color:var(--accent);padding:0;min-height:0;text-decoration:underline}.badge{display:inline-block;font-size:.72rem;padding:2px 9px;border-radius:99px;white-space:nowrap;background:var(--surface-2);color:var(--ink-2);font-weight:600}.tone-accent{background:var(--accent-soft);color:var(--accent)}.tone-ok{background:var(--ok-soft);color:var(--ok)}.tone-warn{background:var(--warn-soft);color:var(--warn)}.tone-crit{background:var(--crit-soft);color:var(--crit)}.tone-muted{background:var(--surface-2);color:var(--muted)}.tone-neutral{background:#e8ecf1;color:#3a4a5c}.notice{border-radius:var(--radius);padding:12px 14px;font-size:.9rem}.notice.tone-accent{border:1px solid #ecc8bb}.notice.tone-warn{border:1px solid #ecd6ad}.notice.tone-crit{border:1px solid #ebbcb6}.notice.tone-ok{border:1px solid #bcd9c7}.field{display:block}.field+.field{margin-top:14px}.field-label{display:block;font-weight:600;font-size:.88rem;margin-bottom:4px}.field-label .req{color:var(--crit);font-size:.75rem;margin-left:4px}.field-help{color:var(--muted);font-size:.78rem;margin-top:2px}.field-error{color:var(--crit);font-size:.8rem;margin-top:4px}input[type=text],input[type=email],input[type=tel],input[type=url],input[type=number],input[type=date],input[type=datetime-local],select,textarea{width:100%;font:inherit;font-size:16px;padding:10px 12px;border:1px solid #cfcdc3;border-radius:8px;background:#fff;color:var(--ink)}textarea{min-height:96px;resize:vertical}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.checkbox{display:flex;gap:8px;align-items:flex-start}.checkbox input{margin-top:5px;width:18px;height:18px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.85rem}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-weight:600;font-size:.78rem;white-space:nowrap}tr.clickable{cursor:pointer}tr.clickable:hover td{background:#fbfaf6}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.lines{width:100%}.lines td{border:0;padding:4px 0}.lines td.num{text-align:right}.lines .total td{border-top:1px solid var(--line);padding-top:10px;font-weight:700;font-size:1.05rem}.lines .sub td{color:var(--muted);font-size:.8rem;padding-top:0}.kv{display:grid;grid-template-columns:8em 1fr;gap:6px 12px;font-size:.88rem}.kv dt{color:var(--muted)}.kv dd{margin:0;overflow-wrap:anywhere}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);opacity:0;background:var(--ink);color:#fff;padding:10px 18px;border-radius:8px;font-size:.88rem;transition:.2s;z-index:100;max-width:calc(100% - 32px);pointer-events:none}.toast.show{opacity:1;transform:translate(-50%)}.toast.error{background:var(--crit)}dialog{border:0;border-radius:12px;padding:0;width:min(520px,calc(100% - 32px));box-shadow:0 10px 40px #0003}dialog::backdrop{background:#14141466}.dialog-body{padding:20px}.dialog-foot{display:flex;gap:8px;justify-content:flex-end;padding:12px 20px;border-top:1px solid var(--line);background:var(--surface-2)}.mock-panel{position:fixed;right:12px;bottom:12px;z-index:50;font-size:.8rem}.mock-panel>button{background:#2d3a46;color:#fff;border:0;border-radius:99px;padding:8px 14px;cursor:pointer;font:inherit;box-shadow:0 2px 8px #0003}.mock-panel .mock-menu{position:absolute;right:0;bottom:44px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px;width:260px;box-shadow:0 6px 24px #00000026}.mock-panel .mock-menu button{display:block;width:100%;text-align:left;border:0;background:none;padding:7px 8px;border-radius:6px;cursor:pointer;font:inherit}.mock-panel .mock-menu button:hover{background:var(--surface-2)}.mock-tag{display:inline-block;background:#2d3a46;color:#fff;font-size:.68rem;padding:1px 6px;border-radius:4px;margin-left:6px;vertical-align:middle}body{background:var(--bg)}.app-header{position:sticky;top:0;z-index:10;background:var(--surface);border-bottom:1px solid var(--line);padding:10px 16px;padding-top:max(10px,env(safe-area-inset-top))}.app-header .inner{max-width:560px;margin:0 auto;display:flex;align-items:center;gap:10px}.app-header .brand{font-weight:700;font-size:.95rem;color:var(--ink);text-decoration:none}.app-header .brand small{display:block;font-weight:400;color:var(--muted);font-size:.72rem}.app-header .back{text-decoration:none;color:var(--ink-2);font-size:1.4rem;line-height:1;padding:4px 8px 4px 0}.page{max-width:560px;margin:0 auto;padding:16px 16px 96px}.page-title{font-size:1.15rem;margin:4px 0 14px}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:10;background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.bottom-nav .inner{max-width:560px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr)}.bottom-nav a{text-align:center;padding:8px 0 10px;font-size:.7rem;color:var(--muted);text-decoration:none}.bottom-nav a .ico{display:block;font-size:1.2rem;line-height:1.4}.bottom-nav a.active{color:var(--accent);font-weight:700}.bottom-nav a.disabled{opacity:.35;pointer-events:none}.status-band{border-radius:var(--radius);padding:14px 16px;margin-bottom:12px}.status-band .label{font-weight:700;font-size:1.05rem}.status-band .msg{font-size:.85rem;margin:2px 0 0}.next-card{background:var(--surface);border:2px solid var(--accent);border-radius:14px;padding:16px;margin-bottom:14px}.next-card .eyebrow{color:var(--accent);font-size:.75rem;font-weight:700;letter-spacing:.04em}.next-card .title{font-size:1.1rem;font-weight:700;margin:2px 0 6px}.todo-list{list-style:none;margin:0;padding:0}.todo{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--line)}.todo:last-child{border-bottom:0}.todo .mark{flex:0 0 22px;height:22px;border-radius:50%;border:2px solid #c9c7bd;margin-top:2px;display:grid;place-items:center;font-size:.75rem;color:#fff}.todo.done .mark{background:var(--ok);border-color:var(--ok)}.todo.info .mark{border-style:dashed}.todo .body{flex:1;min-width:0}.todo .title{font-weight:600;font-size:.92rem}.todo.done .title{color:var(--muted);text-decoration:line-through}.todo .meta{font-size:.78rem;color:var(--muted)}.todo .meta.soon{color:var(--crit);font-weight:600}.todo a.go{flex:0 0 auto;font-size:.82rem}details.done-list summary{cursor:pointer;color:var(--muted);font-size:.82rem;padding:8px 0 0}.option{display:flex;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.option:last-child{border-bottom:0}.option .body{flex:1}.option .name{font-weight:600;font-size:.92rem}.option .price{font-size:.85rem}.qty{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:8px;overflow:hidden}.qty button{width:38px;height:38px;border:0;background:var(--surface-2);font-size:1.1rem;cursor:pointer}.qty button:disabled{opacity:.35}.qty span{width:34px;text-align:center;font-weight:700}.material-item{padding:14px 0;border-bottom:1px solid var(--line)}.material-item:last-child{border-bottom:0}.thumbs{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.thumb{position:relative;width:88px;height:88px;border-radius:8px;overflow:hidden;background:var(--surface-2);border:1px solid var(--line)}.thumb img{width:100%;height:100%;object-fit:cover}.thumb button{position:absolute;top:2px;right:2px;width:24px;height:24px;border-radius:50%;border:0;background:#0009;color:#fff;cursor:pointer}.upload-btn{width:88px;height:88px;border:2px dashed #c9c7bd;border-radius:8px;display:grid;place-items:center;color:var(--muted);font-size:.75rem;cursor:pointer;text-align:center;background:#fff}.progress{height:6px;background:var(--surface-2);border-radius:99px;overflow:hidden}.progress>span{display:block;height:100%;background:var(--accent)}.sticky-actions{position:sticky;bottom:64px;background:linear-gradient(to top,var(--bg) 70%,transparent);padding:12px 0 4px}.map-wrap{position:relative;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);background:#fff}.map-wrap img{display:block;width:100%}.pin{position:absolute;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:#c9c7bd}.pin.mine{width:26px;height:26px;margin:-13px 0 0 -13px;background:var(--accent);border:3px solid #fff;box-shadow:0 0 0 3px var(--accent);animation:pulse 1.6s infinite}@keyframes pulse{50%{box-shadow:0 0 0 9px #b5462b40}}.mock-square{max-width:420px;margin:32px auto;padding:0 16px}.mock-square .sq-head{background:#000;color:#fff;border-radius:12px 12px 0 0;padding:14px 18px;font-weight:700}.mock-square .sq-body{background:#fff;border:1px solid var(--line);border-top:0;border-radius:0 0 12px 12px;padding:18px}.slides-frame{position:relative;width:100%;aspect-ratio:16 / 9;background:var(--surface-2);border-radius:8px;overflow:hidden}.slides-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.round{padding:10px 0;border-bottom:1px solid var(--line)}.round:last-of-type{border-bottom:0}.round-focus{background:var(--accent-soft);margin:0 -16px;padding:10px 16px}.round-deadline{margin:6px 0 2px;font-size:.9rem;color:var(--accent);font-weight:700}.round-deadline strong{display:block;font-size:1.35rem;line-height:1.3;color:var(--ink)}.price-discount{white-space:nowrap}.material-links ul{margin:0;padding-left:1.2em}.material-links li{margin:4px 0}.material-links a{font-weight:700}.price-discount s{font-weight:400;margin-right:2px}.pass{border:3px solid var(--ink);border-radius:12px;padding:20px;background:#fff;text-align:center}.pass .pass-title{font-size:1.6rem;font-weight:800;letter-spacing:.2em}.pass .pass-no{font-size:2.4rem;font-weight:800;margin:8px 0;font-variant-numeric:tabular-nums}@media print{.app-header,.bottom-nav,.mock-panel,.no-print{display:none!important}body{background:#fff}.page{padding:0}}
