:root{--navy: #1f4e79;--line: #d5dbe3;--bg: #f4f6f9;--ok: #1e7b3c;--ok-bg: #e3f4e8;--warn: #9a5b00;--warn-bg: #fff3d6;--err: #b42318;--err-bg: #fde8e6;--muted: #6b7280}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:#1f2937;font-family:Helvetica Neue,Arial,Hiragino Kaku Gothic ProN,Meiryo,sans-serif;font-size:14px}button{font:inherit;padding:5px 12px;border:1px solid var(--line);border-radius:5px;background:#fff;cursor:pointer;margin-right:4px}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--navy);color:#fff;border-color:var(--navy);font-weight:700;padding:8px 20px}button.danger{color:var(--err);border-color:var(--err)}button.link{border:none;background:none;color:var(--navy);text-decoration:underline;padding:2px 6px}input,select,textarea{font:inherit;padding:4px 6px;border:1px solid var(--line);border-radius:4px;background:#fff}input.num{width:80px;text-align:right}textarea{width:100%}a{color:var(--navy)}h2{margin:6px 0;font-size:20px}h3{margin:18px 0 6px;font-size:15px}.muted{color:var(--muted)}.small{font-size:12px}.center{text-align:center}.r{text-align:right}.nowrap{white-space:nowrap}.err{color:var(--err)}.app header{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:16px;background:var(--navy);color:#fff;padding:8px 16px}.app header .brand{font-size:17px}.app header nav a{color:#cfe0f1;text-decoration:none;margin-right:14px;padding:4px 0}.app header nav a.on{color:#fff;border-bottom:2px solid #fff}.app header .spacer{flex:1}.app header button{background:transparent;color:#fff;border-color:#6d8fb3}.app header button.link{color:#cfe0f1}.toggle{display:inline-flex;align-items:center;gap:4px;font-size:13px;cursor:pointer}.toggle.big{font-size:14px;font-weight:700;margin:6px 0}main{padding:16px}.stats{display:flex;gap:12px;margin-bottom:12px}.stats>div{background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px 18px;min-width:150px}.stats span{display:block;color:var(--muted);font-size:12px}.stats b{font-size:26px}.stats .ok b{color:var(--ok)}.stats .warn{background:var(--warn-bg);border-color:#f0c36d}.stats .warn b{color:var(--warn)}.banner{padding:8px 12px;border-radius:6px;margin:6px 0;background:#eef2f7}.banner.warn{background:var(--warn-bg);color:var(--warn)}.banner.err{background:var(--err-bg);color:var(--err)}.banner.ok{background:var(--ok-bg);color:var(--ok)}.banner button{margin-left:10px}.cols{display:flex;gap:16px;align-items:flex-start}.cols .grow{flex:1;min-width:0}.cols aside{width:320px}.event{background:#fff;border:1px solid var(--line);border-left:4px solid #9aa9b9;border-radius:6px;padding:6px 10px;margin-bottom:6px;cursor:pointer;font-size:13px}.event.auto_issued,.event.issued,.event.mail_sent{border-left-color:var(--ok)}.event.needs_review{border-left-color:#e0a100}.event.error{border-left-color:var(--err)}.tabs{margin-bottom:8px}.tabs button.on{background:var(--navy);color:#fff;border-color:var(--navy)}table.list{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line)}table.list th{background:#eef2f7;text-align:left;font-weight:400;color:#374151;font-size:12px;padding:6px 8px;border-bottom:1px solid var(--line)}table.list td{padding:6px 8px;border-bottom:1px solid #edf0f4;vertical-align:middle}table.list tbody tr{cursor:pointer}table.list tbody tr:hover{background:#f8fafc}table.edit tbody tr{cursor:default}table.edit tr.dirty{background:#fffbea}table.edit td{padding:3px 4px}.pill{display:inline-block;padding:1px 8px;border-radius:10px;font-size:12px;background:#eef2f7;margin-right:4px;white-space:nowrap}.pill.ok{background:var(--ok-bg);color:var(--ok)}.pill.warn{background:var(--warn-bg);color:var(--warn)}.pill.err{background:var(--err-bg);color:var(--err)}.pill.gray{color:var(--muted)}.detail{display:flex;gap:16px;height:calc(100vh - 80px)}.detail .fax{flex:1.3;background:#fff;border:1px solid var(--line)}.detail .fax iframe{width:100%;height:100%;border:0}.detail .side{flex:1;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:6px;padding:12px 16px}table.kv{border-collapse:collapse;margin-top:8px;width:100%}table.kv th{text-align:left;color:var(--muted);font-weight:400;padding:4px 8px 4px 0;width:60px}table.kv td{padding:4px 12px 4px 0}ul.checks{list-style:none;padding:0;margin:0}ul.checks li{padding:2px 0}ul.checks li.ok{color:var(--ok)}ul.checks li.ng{color:var(--err);font-weight:700}.line{border:1px solid var(--line);border-radius:6px;padding:8px 10px;margin-bottom:8px}.line .row,.row{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:4px}.picker input{width:100%;margin:4px 0}.picker .opts{max-height:240px;overflow:auto}.picker .opts label{display:block;padding:4px 6px;border-radius:4px;cursor:pointer}.picker .opts label.on{background:#e6eef7}.actions{margin:14px 0 6px}.stack section{margin-bottom:22px}.card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:12px 16px;margin-bottom:12px}.card label{display:block;margin:8px 0}.login-bg{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a365d,#2c5282)}.login{background:#fff;padding:30px 36px;border-radius:8px;width:360px;box-shadow:0 8px 32px #0000004d}.login-title{font-size:20px;font-weight:700;color:#1a365d}.login label{display:block;margin-bottom:12px;font-size:13px}.login select,.login input{display:block;width:100%;margin-top:4px;padding:7px}.login button{width:100%;margin-top:6px}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:20;display:flex;align-items:center;justify-content:center}.modal{background:#fff;border-radius:8px;padding:16px 18px;width:min(900px,94vw);max-height:86vh;overflow:auto;box-shadow:0 8px 28px #0000004d}.modal table{margin-top:8px}table.calc{border-collapse:collapse;font-size:12px;margin:6px 0;width:100%;background:#f8fafc}table.calc th{text-align:left;font-weight:400;color:var(--muted);padding:2px 8px;width:60px;white-space:nowrap}table.calc td{padding:2px 8px}table.calc td.err,table.calc b.err{color:var(--err);font-weight:700}.row .spacer{flex:1}.item-search{position:relative;display:inline-block}.item-search .dropdown{position:absolute;z-index:10;background:#fff;border:1px solid var(--line);box-shadow:0 4px 12px #00000026;width:360px;max-height:260px;overflow:auto}.item-search .dropdown div{padding:4px 8px;cursor:pointer;font-size:12px}.item-search .dropdown div:hover{background:#eef2f7}.est-sheet{background:#fff;border:1px solid var(--line);padding:18px 22px;margin-top:8px;overflow-x:auto}.est-sheet input:disabled,.est-sheet textarea:disabled{background:transparent;border-color:transparent;color:inherit}.est-head{display:flex;justify-content:space-between;gap:20px;margin-bottom:10px}.est-head h1{font-size:26px;letter-spacing:8px;margin:0 0 10px;border-bottom:3px double #333;display:inline-block;padding:0 20px 2px}.est-head .to{font-size:18px}.est-head .attn{font-size:15px;width:320px}.est-head .title{display:block;margin-top:6px;width:320px}.est-head .from{text-align:right;font-size:12px;line-height:1.6}.est-head .copper{margin-top:6px;font-size:13px}.est-table{border-collapse:collapse;width:100%;font-size:12px}.est-table th{background:#eef2f7;border:1px solid #999;padding:3px 4px;font-weight:400;white-space:nowrap}.est-table td{border:1px solid #bbb;padding:2px 4px;vertical-align:top}.est-table td.c{text-align:center}.est-table input{padding:2px 3px}.procs{display:flex;flex-wrap:wrap;gap:2px 6px;max-width:290px}.proc{white-space:nowrap}.est-sheet .notes{margin-top:10px}.est-sheet .greet{margin-top:10px;font-size:13px}@media print{@page{size:A4 landscape;margin:10mm}body{background:#fff}.app header,.no-print,.banner{display:none!important}main{padding:0}.est-sheet{border:none;padding:0}.est-sheet input,.est-sheet textarea{border:none!important;background:transparent!important}.est-sheet input[type=date]::-webkit-calendar-picker-indicator{display:none}}.raw-sheet{overflow:auto;max-height:calc(100vh - 160px);background:#fff;border:1px solid var(--line);margin-top:8px}.raw-sheet table{border-collapse:collapse;font-size:11px}.raw-sheet th{position:sticky;top:0;background:#eef2f7;color:var(--muted);font-weight:400;border:1px solid #d5dbe3;padding:1px 4px}.raw-sheet tbody th{position:sticky;left:0}.raw-sheet td{border:1px solid #e5e9ef;padding:1px 4px;white-space:nowrap;max-width:220px;overflow:hidden;text-overflow:ellipsis}.ok-text{color:var(--ok)}.pagebar{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin:6px 0}.pagebar .pg{min-width:28px;padding:2px 6px;border:1px solid #c9ced6;border-radius:4px;text-align:center;text-decoration:none;color:#333;background:#fff}.pagebar .pg.needs_review{background:#fff4d6;border-color:#e0b84a}.pagebar .pg.issued{background:#e3f4e6;border-color:#6bb87a}.pagebar .pg.cancelled{background:#eee;color:#999}.pagebar .pg.cur{outline:2px solid #0b4f71;font-weight:700}.dlg-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.dlg{background:#fff;border-radius:8px;padding:20px;max-width:460px;width:100%;box-shadow:0 8px 30px #00000040}.dlg-msg{white-space:pre-wrap;margin-bottom:14px;line-height:1.6}.dlg input{width:100%;margin-bottom:14px}.dlg-btns{display:flex;gap:8px;justify-content:flex-end}.wi section{margin:16px 0;padding:12px;border:1px solid #dde1e6;border-radius:6px;background:#fff}.wi h3{margin:0 0 8px}.wi .steps td{vertical-align:top}.wi .steps textarea{font:inherit}.wi .block{display:block;margin-top:8px}.wi label.button{display:inline-block;padding:4px 10px;border:1px solid #b8c0ca;border-radius:4px;cursor:pointer;background:#f6f8fa}.wi .nowrap{white-space:nowrap}.wi .c{text-align:center}.schedule .row{margin-bottom:8px}.sched-week{margin-bottom:18px}.sched-week-title{font-weight:700;color:var(--navy);margin:4px 0}.sched-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.sched-day{background:#fff;border:1px solid var(--line);border-radius:6px;padding:4px;min-width:0}.sched-day.today{border-color:var(--navy);box-shadow:0 0 0 2px #c9d9ea}.sched-date{font-weight:700;padding:2px 4px 4px;border-bottom:1px solid var(--line);margin-bottom:2px}table.sched{width:100%;border-collapse:collapse;table-layout:fixed;font-size:12px}table.sched th{font-weight:400;color:var(--muted);font-size:11px;text-align:left;padding:1px 2px}table.sched th:nth-child(1){width:22%}table.sched th:nth-child(2){width:36%}table.sched th:nth-child(3){width:13%}table.sched th:nth-child(4){width:29%}table.sched th:nth-child(5){width:64px}table.sched td{padding:0 1px;border-bottom:1px solid #f0f2f5;vertical-align:top}table.sched td input{width:100%;border:1px solid transparent;padding:2px 3px;font-size:12px;background:transparent}table.sched td input:hover{border-color:var(--line)}table.sched td input:focus{border-color:var(--navy);background:#fff}table.sched td.qty input{text-align:right}table.sched td.co.same input{color:#b8c0cc}table.sched td .sub{font-size:10px;color:var(--muted);padding:0 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}table.sched td.ops{white-space:nowrap}table.sched td.ops input[type=checkbox]{width:auto}table.sched td.ops button.link{padding:0 2px;margin:0;text-decoration:none}table.sched tr.auto td.co{box-shadow:inset 3px 0 #3b82c4}table.sched tr.done input{text-decoration:line-through;color:var(--muted)}table.sched tr.hit{background:#fff6bf}.pill.auto-pill{background:#e3eefa;color:#1f4e79;box-shadow:inset 3px 0 #3b82c4}tr.open-detail{cursor:default!important;background:#fafbfd}tr.open-detail:hover{background:#fafbfd!important}@media print{.schedule{font-size:10px}.sched-week{break-inside:avoid}.sched-day{border-radius:0;box-shadow:none!important}table.sched td input{border:none!important;padding:0 1px;font-size:10px}table.sched th:nth-child(5),table.sched td.ops{display:none}}table.fax-lines td.crop img{display:block;width:520px;max-width:46vw;border:1px solid var(--line)}table.fax-lines tr.skip td:not(.crop){opacity:.45}table.fax-lines input[type=date]{width:140px}.ok-text{color:var(--ok);font-weight:700}.warn-text{color:var(--warn)}table.list tbody tr.sel{background:#e6eef7}table.list tr.comp-row td{background:#f8fafc;border-top:none}select.src-sel{font-size:12px;padding:1px 2px}.modal.preview-modal{width:min(1100px,96vw);max-height:94vh;display:flex;flex-direction:column}.preview-frame{width:100%;height:78vh;border:1px solid var(--line);margin-top:8px}
