:root{--bg:#f4f6f8;--surface:#fff;--text:#1a1d21;--muted:#5c6570;--border:#d8dee4;--accent:#0d6efd;--accent-hover:#0b5ed7;--danger:#dc3545;--radius:8px;--font:'Hiragino Sans' , 'Hiragino Kaku Gothic ProN' , Meiryo , sans-serif}*{box-sizing:border-box}body{margin:0;font-family: var(--font);font-size:15px;color:var(--text);background:var(--bg);line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-shell--bare .app-header{justify-content:center}.app-header{display:flex;align-items:center;flex-wrap:wrap;gap:1rem;padding:.75rem 1.25rem;background:var(--surface);border-bottom:1px solid var(--border)}.brand{font-weight:700;font-size:1.1rem}.brand a{color:var(--text);text-decoration:none}.nav{display:flex;flex-wrap:wrap;gap:.5rem 1rem;flex:1}.nav a{color:var(--muted);font-weight:500}.nav a:hover,.nav a.active{color:var(--accent);text-decoration:none}.nav a.active{font-weight:700}.user-meta{display:flex;align-items:center;gap:.75rem;color:var(--muted);font-size:.9rem}.app-main{flex:1;padding:1.25rem;max-width:1200px;width:100%;margin:0 auto}h1{font-size:1.35rem;margin:0 0 1rem;font-weight:700}h2{font-size:1.1rem;margin:1.25rem 0 .5rem}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem;margin-bottom:1rem}.form-row{margin-bottom:.75rem}.form-row label{display:block;font-size:.875rem;color:var(--muted);margin-bottom:.25rem}input[type="text"],input[type="password"],input[type="date"],input[type="number"],select,textarea{width:100%;max-width:28rem;padding:.45rem .6rem;border:1px solid var(--border);border-radius:4px;font:inherit}textarea{max-width:100%;min-height:4rem}.btn{display:inline-block;padding:.45rem 1rem;border-radius:4px;border:1px solid transparent;font:inherit;cursor:pointer;background:var(--accent);color:#fff}.btn:hover{background:var(--accent-hover);text-decoration:none;color:#fff}.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border)}.btn-secondary:hover{background:var(--bg);color:var(--text)}.btn-danger{background:var(--danger)}.btn-danger:hover{background:#bb2d3b;color:#fff}.alert{padding:.6rem .85rem;border-radius:4px;margin-bottom:1rem}.alert-error{background:#f8d7da;color:#842029;border:1px solid #f5c2c7}.alert-success{background:#d1e7dd;color:#0f5132;border:1px solid #badbcc}table.data{width:100%;border-collapse:collapse;font-size:.9rem}table.data.data--purchase-list{table-layout:fixed}table.data.data--purchase-list col.data-col-print{width:5.5rem}table.data.data--purchase-list col.data-col-no{width:3.5rem}table.data.data--purchase-list col.data-col-date{width:8rem}table.data.data--purchase-list col.data-col-status{width:5rem}table.data.data--purchase-list col.data-col-user{width:7rem}table.data.data--purchase-list col.data-col-note{width:10%}table.data.data--purchase-list col.data-col-lines{width:auto}table.data.data--purchase-list col.data-col-edit{width:4.5rem}table.data td.td-data-lines{vertical-align:middle}table.data.data--purchase-list tbody tr.purchase-list-detail .td-purchase-detail-full{padding:0 .5rem .85rem;vertical-align:top;border-top:none}table.data.data--purchase-list .purchase-detail-scroll{margin:0;max-width:100%}button.lines-toggle{cursor:pointer;color:var(--accent);font-size:.875rem;background:none;border:none;padding:0;font:inherit;text-align:left;display:inline-flex;align-items:center;gap:.2rem}button.lines-toggle:hover{color:var(--accent-hover);text-decoration:underline}table.data.data--purchase-list tbody tr.purchase-stripe-a{background:#fff}table.data.data--purchase-list tbody tr.purchase-stripe-b{background:#fafbfc}table.data td.td-data-note{overflow-wrap:anywhere;word-break:break-word}table.data td.td-data-edit{white-space:nowrap;width:4.5rem;vertical-align:middle;text-align:center}table.data .purchase-grid--embedded-list{font-size:.8rem;min-width:900px}table.data th,table.data td{border:1px solid var(--border);padding:.4rem .5rem;text-align:left}table.data th{background:#eef1f4;font-weight:600}table.data:not(.data--purchase-list) tr:nth-child(even) {background:#fafbfc}table.data .col-order-print{white-space:nowrap;vertical-align:middle}.login-box{max-width:360px;margin:3rem auto}.purchase-grid-wrap{overflow-x:auto;margin:0 -.25rem}.purchase-grid{border-collapse:collapse;font-size:.82rem;min-width:1100px;background:var(--surface)}.purchase-grid th,.purchase-grid td{border:1px solid var(--border);padding:.25rem;vertical-align:middle}.purchase-grid th{background:#e8ecf0;font-weight:600;white-space:nowrap}.purchase-grid select,.purchase-grid input[type="number"]{max-width:none;width:100%;min-width:4rem;padding:.35rem .4rem}.purchase-grid .col-narrow{width:4.5rem}.purchase-grid .col-deal{width:5rem}.toolbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:1rem}.subtle{color:var(--muted);font-size:.875rem}.inline-form{display:inline}.filters{display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-end;margin-bottom:1rem}.filters .form-row{margin:0}.filters input,.filters select{max-width:12rem}details.lines-detail{margin-top:.35rem}details.lines-detail summary{cursor:pointer;color:var(--accent);font-size:.875rem}.master-links{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem}.master-links a{display:block;padding:.75rem 1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-weight:500}.master-links a:hover{border-color:var(--accent);text-decoration:none}