:root{--cream: #f7f4ee;--panel: #ffffff;--ink: #20211f;--muted: #77746d;--line: #e4ded3;--soft: #fbfaf7;--brand: #2f7d68;--brand-hi: #255f4f;--accent-2: #d98d45;--accent-soft: #e8f3ef;--warn-soft: #fff3df;--warn-ink: #a76019;--danger-soft: #fdeceb;--danger-ink: #a63a30;--radius: 14px;--radius-lg: 22px;--shadow-card: 0 12px 34px rgba(45, 38, 24, .05)}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans JP,sans-serif;-webkit-font-smoothing:antialiased;background:var(--cream);color:var(--ink);font-size:14px;line-height:1.7}a{color:var(--brand-hi)}.app{min-height:100vh}.app-header{background:var(--panel);border-bottom:1px solid var(--line)}.app-header-inner,.app-main{max-width:960px;margin:0 auto;padding:0 16px}.app-header-inner{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding-top:12px;padding-bottom:12px}.app-main{padding-top:24px;padding-bottom:64px}.brand{font-weight:700;font-size:15px}.header-nav{margin-left:auto;display:flex;align-items:center;gap:14px;flex-wrap:wrap}.header-nav a{font-size:12px;color:var(--muted);text-decoration:none}.header-nav a:hover{color:var(--ink)}.app-nav{display:flex;gap:6px;flex-wrap:wrap}.app-nav a{border:1px solid var(--line);border-radius:999px;padding:4px 12px;font-size:12px;text-decoration:none;color:var(--muted)}.app-nav a.is-active{background:var(--ink);border-color:var(--ink);color:#fff}.centered-note{min-height:100vh;display:flex;align-items:center;justify-content:center;color:var(--muted)}h1{font-size:20px;margin:0 0 4px}h2{font-size:16px;margin:0 0 8px}h3{font-size:14px;margin:0 0 6px}.muted{color:var(--muted)}.small{font-size:12px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;word-break:break-all}.page-head{margin-bottom:18px}.stack{display:flex;flex-direction:column;gap:16px}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:18px 20px}.card+.card{margin-top:16px}.card-title{font-size:15px;font-weight:700;margin:0 0 4px}.card-desc{color:var(--muted);font-size:12px;margin:0 0 14px}.list{list-style:none;margin:0;padding:0}.list-item{border:1px solid var(--line);border-radius:var(--radius);background:var(--soft);padding:14px 16px}.list-item+.list-item{margin-top:10px}.list-item-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.list-item-actions{margin-top:10px;display:flex;gap:8px;flex-wrap:wrap}.field{display:block;margin-bottom:12px}.field-label{display:block;font-size:12px;font-weight:600;margin-bottom:4px}.field-hint{display:block;font-size:11px;color:var(--muted);margin-top:4px}input[type=text],input[type=number],input[type=datetime-local],select,textarea{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);font:inherit;font-size:13px}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent-soft);border-color:var(--brand)}.field-inline{display:flex;gap:12px;flex-wrap:wrap}.field-inline>.field{flex:1 1 160px;margin-bottom:12px}.checkbox{display:flex;align-items:center;gap:8px;font-size:13px;margin-bottom:12px}.checkbox input{width:auto}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:999px;padding:8px 16px;font:inherit;font-size:13px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:6px}.btn:hover:not(:disabled){background:var(--soft)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn-primary:hover:not(:disabled){background:var(--brand-hi)}.btn-small{padding:5px 12px;font-size:12px}.badge{display:inline-block;border-radius:999px;padding:2px 10px;font-size:11px;font-weight:600;border:1px solid transparent}.badge-ok{background:var(--accent-soft);color:var(--brand-hi)}.badge-warn{background:var(--warn-soft);color:var(--warn-ink)}.badge-neutral{background:var(--soft);color:var(--muted);border-color:var(--line)}.notice{border-radius:var(--radius);padding:12px 14px;font-size:13px;margin-bottom:14px}.notice-error{background:var(--danger-soft);color:var(--danger-ink)}.notice-warn{background:var(--warn-soft);color:var(--warn-ink)}.notice-ok{background:var(--accent-soft);color:var(--brand-hi)}.notice a{color:inherit;font-weight:700}.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0 20px}.tab{border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:6px 14px;font-size:12px;text-decoration:none;color:var(--muted)}.tab.is-active{background:var(--ink);border-color:var(--ink);color:#fff}.link-result{border:1px solid var(--line);border-radius:var(--radius);background:var(--soft);padding:16px;display:flex;gap:20px;flex-wrap:wrap;align-items:flex-start}.link-result-main{flex:1 1 260px;min-width:0}.qr-box{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:10px;line-height:0}.qr-box canvas{display:block}.data-table{width:100%;border-collapse:collapse;font-size:12px}.data-table th,.data-table td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--line);white-space:nowrap}.data-table th{color:var(--muted);font-weight:600}.data-table tr:last-child td{border-bottom:none}.requirement-list{margin:6px 0 0;padding-left:20px}.requirement-list li{font-size:13px}.image-gallery{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px}.image-cell{width:92px}.image-thumb{width:92px;height:92px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;overflow:hidden}.image-thumb img{width:100%;height:100%;object-fit:cover;display:block}.image-thumb-actions{display:flex;gap:3px;margin-top:4px}.image-thumb-actions .btn{flex:1;padding:3px 0;font-size:11px;border-radius:6px}.image-add{width:92px;height:92px;border:1px dashed var(--line);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;text-align:center;font-size:11px;color:var(--muted);cursor:pointer;padding:4px}.image-add:hover{border-color:var(--brand);color:var(--brand-hi)}.image-add input{display:none}
