
*{box-sizing:border-box}body{margin:0;background:#f3f5fa;color:#17243b;font:16px/1.5 system-ui,-apple-system,'Segoe UI',sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid #d8deeb;border-radius:8px;background:white;color:#273852;padding:8px 12px}button:hover{background:#edf2ff}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #91b6ff;outline-offset:2px}.primary{background:#2561df;color:white;border-color:#2561df}.primary:hover{background:#194ebc}header{display:flex;align-items:center;gap:14px;padding:19px 28px;background:white;border-bottom:1px solid #dde3ef;flex-wrap:wrap}.brand{background:#2561df;color:white;border-radius:10px;padding:8px 11px;font-size:24px}h1{font-size:21px;margin:0}.sub{font-size:13px;color:#6b7890}.actions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}.strip{display:flex;gap:20px;padding:14px 28px;align-items:center;flex-wrap:wrap}.strip input{max-width:420px;flex:1;min-width:220px}.stats{font-size:14px;color:#596984}.layout{display:grid;grid-template-columns:190px minmax(420px,1fr) 286px;gap:16px;padding:0 24px 24px}.panel{background:white;border:1px solid #dfe5ef;border-radius:12px;padding:18px}h2{font-size:15px;margin:0 0 14px}.palette{display:grid;gap:9px}.palette button{text-align:left;display:flex;gap:12px;align-items:center}.badge{font-size:22px}.muted{color:#718097;font-size:13px}.legend{margin-top:28px;font-size:14px;display:grid;gap:9px}.dot{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:8px;background:var(--c)}.mapbox{background:white;border:1px solid #dfe5ef;border-radius:12px;overflow:hidden}.maphead{padding:15px 18px;display:flex;justify-content:space-between;border-bottom:1px solid #e2e7ef;align-items:center;gap:10px}.mapcontrols{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:12px 18px;border-bottom:1px solid #e2e7ef;font-size:14px}.mapcontrols label{display:flex;align-items:center;gap:6px}.mapcontrols input{width:86px}.mapcontrols select{width:90px}#stage{position:relative}.map{transform-origin:top left}.maphead strong{font-size:16px}.viewport{overflow:auto;padding:20px;background:#fbfcfe}.map{width:960px;height:650px;position:relative;border:2px solid #a9b6ca;border-radius:4px;background-color:#fafbfd;background-image:radial-gradient(#d8e0ee 1px,transparent 1px);background-size:20px 20px;touch-action:none}.zone{position:absolute;font-size:13px;letter-spacing:2px;color:#93a1b5;pointer-events:none}.item{position:absolute;width:154px;height:95px;padding:7px 12px;text-align:left;background:white;border:1px solid #cbd8eb;border-left:5px solid var(--c);box-shadow:0 3px 8px #1d34500b;border-radius:8px;touch-action:none;cursor:grab;overflow:hidden}.item.selected{outline:3px solid #2561df;outline-offset:2px}.item.dim{opacity:.22}.item .type{font-size:12px;white-space:nowrap;color:#728199;display:flex;justify-content:space-between}.item strong{display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:3px 0}.item .owner{display:block;font-size:12px;color:#596c86;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:16px}.item .owner:empty{display:none}.item .ip{font-size:12px;font-family:ui-monospace,monospace;color:#596c86}.hint{padding:11px 18px;font-size:13px;color:#718097;border-top:1px solid #e2e7ef}.fields{display:grid;gap:12px}.fields label{font-size:13px;color:#60718b;display:grid;gap:4px}input,select,textarea{width:100%;padding:9px 10px;border:1px solid #d5deeb;border-radius:7px;background:white;color:#17243b;font-size:14px}textarea{resize:vertical;min-height:65px}.detailTitle{display:flex;gap:12px;align-items:center;margin-bottom:18px}.detailTitle strong{font-size:16px}.detailActions{display:flex;gap:8px;margin-top:16px}.danger{color:#b53244}.toast{min-height:24px;color:#2561df;font-size:13px;padding:0 28px 12px}footer{font-size:12px;color:#77869a;padding:0 28px 20px}.mobileselect{display:none}@media(max-width:1150px){.layout{grid-template-columns:150px minmax(300px,1fr)}.details{grid-column:1/-1}.fields{grid-template-columns:repeat(3,1fr)}.legend{font-size:13px}}@media(max-width:650px){header{padding:16px}.actions{margin-left:0}.strip{padding:12px 16px;gap:10px}.layout{padding:0 12px 16px;display:flex;flex-direction:column}.palette{grid-template-columns:repeat(3,1fr);gap:6px}.palette button{font-size:13px;padding:8px;gap:5px}.badge{font-size:18px}.legend{display:none}.fields{grid-template-columns:1fr 1fr}.maphead{flex-wrap:wrap}.viewport{padding:12px}.mobileselect{display:block}}#printSheet{display:none}.mapTitleInput{max-width:400px;min-width:140px;font-weight:600}.maphead{flex-wrap:wrap}@media print{body{background:white;margin:0;print-color-adjust:exact;-webkit-print-color-adjust:exact}body>header,body>.strip,body>main,body>.toast,body>footer,body>input{display:none!important}#printSheet{display:block;width:100%;break-inside:avoid}#printTitle{font-size:16pt;line-height:1.3;font-weight:600;margin:0 0 4mm;overflow-wrap:anywhere}#printMap{display:block;width:100%;height:160mm} @page{size:A4 landscape;margin:12mm}}
.faq{margin:0 24px 24px;padding:20px;background:#fff;border:1px solid #dfe5ef;border-radius:12px}.faq h2{font-size:18px;margin:0 0 8px}.faq details{border-bottom:1px solid #e2e7ef}.faq details:last-child{border-bottom:0}.faq summary{cursor:pointer;padding:14px 0;font-size:15px;font-weight:600;overflow-wrap:anywhere}.faq p{margin:0 0 16px;font-size:16px;line-height:1.8;overflow-wrap:anywhere}.credit{font-size:14px;margin-top:10px}.credit a{color:#2561df;text-underline-offset:3px}@media(max-width:650px){.faq{margin:0 12px 16px;padding:16px}}@media print{body>.faq{display:none!important}}
.layout>*{min-width:0}.fields>label{min-width:0}.mapTitleInput{width:min(100%,400px)}.fields input,.fields select,.fields textarea{min-width:0}.sub,.muted,.hint,.fields label{font-size:14px}footer{font-size:14px}@media(max-width:380px){.palette{grid-template-columns:repeat(2,1fr)}.fields{grid-template-columns:1fr}}
@media print{#printTitle{height:14mm;font-size:14pt;overflow:hidden;margin:0 0 3mm}#printMap{height:165mm}}

/* Shincha Works visual alignment v1.0.1
   Functional device-category colors are intentionally preserved. */
:root{--sw-red:#d81f2a;--sw-red-dark:#b81720;--sw-ink:#17191d;--sw-sub:#62666d;--sw-line:#e1e3e6;--sw-soft:#f5f6f7}
body{background:var(--sw-soft);color:var(--sw-ink);font-family:system-ui,-apple-system,"Segoe UI","Yu Gothic UI","Yu Gothic",Meiryo,sans-serif}
header{background:#fff;border-bottom:1px solid var(--sw-line);padding-top:17px;padding-bottom:17px}
.brand{display:grid;place-items:center;min-width:46px;height:46px;padding:0;background:var(--sw-red);border-radius:12px;box-shadow:0 6px 18px rgba(216,31,42,.14)}
.toolbrand{margin-bottom:2px;color:var(--sw-red);font-size:10px;font-weight:800;letter-spacing:.14em;line-height:1.3}
h1{color:var(--sw-ink);font-size:22px;letter-spacing:-.01em}
.sub,.muted,.hint,.stats{color:var(--sw-sub)}
button{border-color:var(--sw-line);border-radius:10px;color:#333840;background:#fff}
button:hover{background:#f7f7f8;border-color:#cfd2d6}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(216,31,42,.23);outline-offset:2px}
.primary{background:var(--sw-red);border-color:var(--sw-red);color:#fff;font-weight:700}
.primary:hover{background:var(--sw-red-dark);border-color:var(--sw-red-dark)}
.strip{background:var(--sw-soft)}
.panel,.mapbox,.faq{border-color:var(--sw-line);border-radius:16px;box-shadow:0 1px 0 rgba(17,19,24,.02)}
.maphead,.mapcontrols,.hint{border-color:#e8e9eb}
.viewport{background:#fafafa}
.map{border-color:#afb4bb;background-color:#fcfcfc;background-image:radial-gradient(#d8dade 1px,transparent 1px)}
.item{border-color:#d7dbe0;box-shadow:0 3px 10px rgba(17,19,24,.045)}
.item.selected{outline-color:var(--sw-red)}
input,select,textarea{border-color:#d6d9dd;border-radius:9px;color:var(--sw-ink)}
.toast{color:var(--sw-red)}
.danger{color:#b4232f}
.faq summary{color:var(--sw-ink)}
.credit a{color:var(--sw-red);font-weight:650}
@media(max-width:650px){.toolbrand{font-size:9px;letter-spacing:.1em}.brand{min-width:42px;height:42px;border-radius:11px}h1{font-size:20px}.panel,.mapbox,.faq{border-radius:14px}}

