:root{--navy:#152d62;--blue:#3159c5;--sky:#edf4ff;--ink:#142033;--muted:#69778e;--line:#dce4f0;--danger:#c9364f;--success:#14804a;--shadow:0 16px 45px rgba(20,32,51,.12)}
*{box-sizing:border-box}body{margin:0;background:#f3f6fb;color:var(--ink);font-family:"Noto Sans JP","Yu Gothic",Meiryo,sans-serif}button,input,select{font:inherit}.hidden{display:none!important}button{cursor:pointer}
.topbar{height:68px;padding:0 24px;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(120deg,var(--navy),var(--blue));color:#fff;box-shadow:0 5px 18px rgba(21,45,98,.25)}.brand{display:flex;align-items:center;gap:12px}.brand img{width:42px;height:42px;border-radius:12px}.brand strong{display:block;font-size:17px}.brand small{opacity:.72;letter-spacing:.12em}.auth{display:flex;align-items:center;gap:10px;font-size:12px}.auth button{border:1px solid rgba(255,255,255,.3);color:inherit;background:rgba(255,255,255,.12);border-radius:999px;padding:7px 12px}.local-badge{background:#ffdc72;color:#5a4000;border-radius:999px;padding:5px 9px;font-weight:800}
.layout{display:grid;grid-template-columns:300px minmax(420px,1fr) 360px;gap:16px;padding:16px;min-height:calc(100vh - 68px)}.panel{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);overflow:hidden}.panel-head{padding:16px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:10px}.panel-head h2{font-size:15px;margin:0}.panel-body{padding:16px}.left-panel .panel-body{max-height:calc(100vh - 118px);overflow:auto}.side-title{font-size:12px;margin:18px 0 9px;color:var(--navy)}.side-title:first-child{margin-top:0}.preview-head{min-height:68px}.preview-head>div:first-child{display:grid;gap:3px}
.primary,.secondary,.danger{display:inline-block;border:0;border-radius:11px;padding:10px 15px;font-weight:800;text-align:center}.primary{background:var(--blue);color:#fff}.secondary{background:var(--sky);color:var(--navy)}.danger{background:#fff0f2;color:var(--danger)}button:disabled{opacity:.45;cursor:not-allowed}
.preset-list{display:flex;flex-direction:column;gap:8px}.preset-item{border:1px solid var(--line);background:#fff;border-radius:12px;text-align:left;padding:12px;display:flex;justify-content:space-between;align-items:center}.preset-item span{font-weight:800}.preset-item small{color:var(--muted)}.preset-item.active{border-color:#6f91e6;background:#eff4ff;box-shadow:inset 3px 0 var(--blue)}.sidebar-actions{display:grid;gap:8px;margin-top:14px}
.drop-zone{border:2px dashed #9cb2dd;border-radius:14px;background:#f7faff;padding:14px 10px;text-align:center;transition:.15s}.drop-zone.dragging{border-color:var(--blue);background:#e9f0ff}.drop-zone strong{display:block;margin-bottom:5px}.drop-zone p{margin:0 0 10px;color:var(--muted);font-size:11px;line-height:1.5}.file-list{list-style:none;padding:0;margin:10px 0;display:grid;gap:7px}.file-list li{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:8px;border:1px solid var(--line);border-radius:10px;padding:8px 10px;font-size:11px}.file-open{border:0;background:none;text-align:left;color:var(--navy);font-weight:700;overflow:hidden;text-overflow:ellipsis}.remove{border:0;background:none;color:var(--danger);font-size:18px}.muted{color:var(--muted)}
.preview-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.preview-toolbar button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:5px 9px}.preview-toolbar input{width:55px;padding:5px;border:1px solid var(--line);border-radius:8px}.page-nav{display:flex;align-items:center;gap:8px;white-space:nowrap}.page-nav input{text-align:center}.page-target-control{display:flex;align-items:center;gap:5px;border:1px solid var(--line);background:#fff;border-radius:8px;padding:5px 8px;color:var(--navy);font-size:11px;font-weight:800}.page-target-control input{width:auto;margin:0;padding:0}.page-target-control:has(input:disabled){opacity:.45}.preview-scroll{overflow:auto;background:#dfe5ed;min-height:520px;padding:18px}.preview-empty{height:480px;display:grid;place-items:center;color:var(--muted);text-align:center}.preview-stage{position:relative;width:max-content;margin:auto;background:#fff;box-shadow:0 8px 24px rgba(0,0,0,.16)}#pdfCanvas{display:block}.stamp-layer{position:absolute;inset:0}.stamp-overlay{position:absolute;transform-origin:center;user-select:none;touch-action:none;cursor:grab}.stamp-overlay>img{display:block;width:100%;height:auto;pointer-events:none;user-select:none}.stamp-overlay.selected{outline:2px solid #1986ff;outline-offset:3px}.stamp-resize-handle{position:absolute;right:-9px;bottom:-9px;width:17px;height:17px;border:2px solid #fff;border-radius:50%;background:#1986ff;box-shadow:0 1px 5px rgba(0,0,0,.38);cursor:nwse-resize;touch-action:none}.target-notice{color:var(--success);font-size:11px;font-weight:800}.target-notice.off{color:#a26100}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field{display:grid;gap:5px}.field.full{grid-column:1/-1}.field label{font-size:11px;font-weight:800;color:var(--muted)}.field input,.field select{width:100%;border:1px solid var(--line);border-radius:9px;padding:9px;background:#fff}.hint{font-size:11px;color:var(--muted);line-height:1.6}.stamp-tabs{display:flex;gap:6px;overflow:auto;padding:12px 0}.stamp-tabs button{white-space:nowrap;border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 10px;font-size:11px}.stamp-tabs button.active{background:var(--navy);color:#fff}.section-title{font-size:12px;margin:18px 0 4px;padding-top:14px;border-top:1px solid var(--line)}.form-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.checkbox{display:flex!important;align-items:center;gap:8px}.checkbox input{width:auto}
.order-control{position:relative}.order-control>input{padding-right:42px}.order-stepper{position:absolute;top:1px;right:1px;bottom:1px;width:36px;display:grid;grid-template-rows:1fr 1fr;border-left:1px solid var(--line);overflow:hidden;border-radius:0 8px 8px 0}.order-stepper button{border:0;background:#f7f9fc;color:var(--navy);font-size:9px;line-height:1;padding:0}.order-stepper button+button{border-top:1px solid var(--line)}.order-stepper button:hover{background:#e8effc}
.page-stamp-option{display:flex;align-items:center;gap:8px;margin:0 0 12px;padding:10px 12px;border:1px solid #b9c9f4;border-radius:10px;background:#f1f5ff;color:var(--navy);font-size:12px;font-weight:800}.page-stamp-option input{margin:0}
.stamp-fields,fieldset#stampFields{border:0;padding:0;margin:0;min-width:0}fieldset#stampFields:disabled{opacity:.58}fieldset#stampFields:disabled input,fieldset#stampFields:disabled select{background:#f5f7fa;color:#526075}.form-actions button{flex:1 1 auto}
.process-box{margin-top:10px;padding-top:2px}.process-box .side-title{margin-top:12px}.process-box .primary{width:100%;font-size:13px;padding:12px}.progress{margin-top:10px;background:#eef3fb;border-radius:10px;padding:10px;font-size:12px;text-align:center}.login-overlay{position:fixed;inset:0;z-index:1000;background:linear-gradient(135deg,var(--navy),#4d70d8);display:grid;place-items:center;padding:20px}.login-card{width:min(410px,100%);background:#fff;border-radius:22px;padding:34px;text-align:center;box-shadow:0 24px 70px rgba(0,0,0,.28)}.login-card img{width:76px}.login-card h1{font-size:21px;margin:14px 0 8px}.login-card p{font-size:13px;color:var(--muted);line-height:1.7}.login-error{color:var(--danger);font-size:12px;margin-top:13px;white-space:pre-wrap}.toast-wrap{position:fixed;z-index:2000;left:50%;bottom:24px;transform:translateX(-50%);display:grid;gap:8px}.toast{opacity:0;transform:translateY(8px);transition:.18s;color:#fff;background:var(--navy);border-radius:12px;padding:12px 17px;box-shadow:var(--shadow);font-size:13px;font-weight:700}.toast.show{opacity:1;transform:none}.toast.success{background:var(--success)}.toast.error{background:var(--danger)}#update-banner{position:fixed;z-index:3000;top:0;left:0;right:0;display:flex;gap:10px;align-items:center;background:#1769d2;color:#fff;padding:9px 14px;box-shadow:0 3px 12px rgba(0,0,0,.2)}#update-banner strong{flex:1}#update-banner button{border:0;border-radius:7px;padding:5px 10px}
.one-off-box{display:grid;gap:8px}.one-off-box select{width:100%;border:1px solid var(--line);border-radius:9px;padding:9px;background:#fff}.one-off-box button{width:100%}.one-off-box small{color:var(--muted);font-size:10px;line-height:1.5}.preset-item small.action{color:var(--blue);font-weight:800}
.image-delete-box{display:grid;gap:8px;margin-top:10px}.image-delete-box select{width:100%;border:1px solid var(--line);border-radius:9px;padding:9px;background:#fff}.image-delete-box button{width:100%}
@media(max-width:1180px){.layout{grid-template-columns:230px 1fr}.settings-panel{grid-column:1/-1}.settings-panel .panel-body{display:grid;grid-template-columns:1fr 1fr;gap:18px}}
@media(max-width:760px){.topbar{height:auto;padding:12px 14px;align-items:flex-start}.brand small{display:none}.auth{flex-direction:column;align-items:flex-end}.layout{display:block;padding:10px}.panel{margin-bottom:10px}.left-panel .panel-body{max-height:none}.preview-head{align-items:flex-start;flex-direction:column}.preview-scroll{min-height:380px;padding:10px}.settings-panel .panel-body{display:block}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}}

.modal-overlay{position:fixed;inset:0;z-index:2600;background:rgba(20,32,51,.5);display:grid;place-items:center;padding:20px;opacity:0;transition:.15s}
.modal-overlay.show{opacity:1}
.modal-card{width:min(420px,100%);background:#fff;border-radius:18px;padding:24px;box-shadow:0 24px 70px rgba(0,0,0,.3);transform:translateY(8px);transition:.15s}
.modal-overlay.show .modal-card{transform:none}
.modal-message{font-size:14px;line-height:1.7;color:var(--ink);white-space:pre-wrap;margin-bottom:16px}
.modal-input{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px;font-size:14px;margin-bottom:16px}
.modal-actions{display:flex;gap:10px;justify-content:flex-end}
.modal-actions button{min-width:96px}
