*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{color:#e0e0e0;background:#111;flex-direction:column;height:100vh;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;display:flex;overflow:hidden}#app{flex:1;min-height:0;display:flex;overflow:hidden}#sidebar{background:#1a1a1a;border-right:1px solid #2d2d2d;flex-direction:column;width:280px;min-width:280px;height:100%;display:flex;overflow:hidden}.sb-top{border-bottom:1px solid #2d2d2d;justify-content:space-between;align-items:center;padding:14px 14px 10px;display:flex}.sb-title{letter-spacing:-.01em;color:#e0e0e0;font-size:15px;font-weight:600}.sb-user{color:#777;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:11px}.sb-user:hover{color:#f97316}.user-dropdown{z-index:50;background:#2a2a2a;border:1px solid #333;border-radius:8px;min-width:148px;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden;box-shadow:0 4px 16px #00000080}.user-dropdown button{color:#ccc;cursor:pointer;text-align:left;background:0 0;border:none;width:100%;padding:8px 12px;font-family:inherit;font-size:12px;display:block}.user-dropdown button:hover{color:#e0e0e0;background:#333}.user-dropdown .signout-item{color:#f87171}.user-dropdown .signout-item:hover{background:#2d0a0a}#new-btn{color:#fff;cursor:pointer;background:#f97316;border:none;border-radius:8px;width:100%;margin-top:8px;padding:8px;font-family:inherit;font-size:13px;font-weight:500}#new-btn:hover{background:#ea6c0c}.sb-filters{border-bottom:1px solid #2d2d2d;flex-direction:column;gap:5px;padding:8px 10px;display:flex}.sb-filters input,.sb-filters select{color:#e0e0e0;background:#222;border:1px solid #333;border-radius:8px;outline:none;width:100%;padding:6px 9px;font-family:inherit;font-size:12px}.sb-filters input::placeholder{color:#555}.sb-filters input:focus,.sb-filters select:focus{border-color:#555}#order-list{flex:1;padding:5px;overflow-y:auto}.orow{cursor:pointer;border:1px solid #0000;border-radius:8px;align-items:center;gap:7px;margin-bottom:2px;padding:8px 9px;display:flex}.orow:hover{background:#222}.orow.sel{background:#2a2a2a;border-color:#3a3a3a}.sdot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.orow-info{flex:1;min-width:0}.orow-name{white-space:nowrap;text-overflow:ellipsis;color:#e0e0e0;font-size:13px;font-weight:600;overflow:hidden}.orow-sub{color:#555;white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:11px;overflow:hidden}.hold-pill{color:#f87171;white-space:nowrap;background:#2d0a0a;border-radius:20px;flex-shrink:0;padding:2px 6px;font-size:10px;font-weight:700}.sb-empty{text-align:center;color:#555;padding:20px 14px;font-size:12px;line-height:1.5}#main{flex-direction:column;flex:1;height:100%;display:flex;overflow:hidden}#no-sel{color:#555;text-align:center;flex:1;justify-content:center;align-items:center;font-size:15px;display:flex}#od{flex-direction:column;flex:1;display:none;overflow:hidden}#od.show{display:flex}.oh{border-bottom:1px solid #2d2d2d;flex-shrink:0;align-items:flex-start;gap:14px;padding:16px 24px 12px;display:flex}.oh-info{flex:1;min-width:0}.oh-title{letter-spacing:-.02em;white-space:nowrap;text-overflow:ellipsis;color:#e0e0e0;margin-bottom:2px;font-size:20px;font-weight:600;overflow:hidden}.oh-meta{color:#777;font-size:13px}.oh-right{flex-shrink:0;align-items:center;gap:7px;margin-top:3px;display:flex}.stage-pill{white-space:nowrap;border-radius:20px;padding:4px 12px;font-size:12px;font-weight:600}.hold-toggle{cursor:pointer;color:#999;white-space:nowrap;background:#222;border:1px solid #333;border-radius:20px;padding:5px 12px;font-family:inherit;font-size:12px;font-weight:500}.hold-toggle:hover{background:#2a2a2a}.hold-toggle.on{color:#f87171;background:#2d0a0a;border-color:#f87171}.del-btn{cursor:pointer;color:#777;background:#222;border:1px solid #333;border-radius:8px;padding:5px 9px;font-family:inherit;font-size:12px}.del-btn:hover{color:#f87171;background:#2d0a0a;border-color:#f87171}.ss-wrap{border-bottom:1px solid #2d2d2d;flex-shrink:0;padding:12px 24px}.ss{grid-template-columns:repeat(5,1fr);display:grid}.ph-grp{border-right:1px solid #2d2d2d;flex-direction:column;gap:3px;padding-right:16px;display:flex}.ph-grp:last-child{border-right:none;padding-right:0}.ph-lbl{color:#999;text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px;padding-left:3px;font-size:9px;font-weight:700}.ph-stages{flex-direction:column;gap:2px;display:flex}.sbtn{cursor:pointer;color:#777;text-align:left;background:0 0;border:1px solid #0000;border-radius:5px;align-items:center;gap:5px;width:100%;padding:5px 8px;font-family:inherit;font-size:12px;font-weight:500;line-height:1.3;display:flex}.sbtn:hover{background:#222}.sbtn .ck{color:#555;font-size:9px}.tab-bar{border-bottom:1px solid #2d2d2d;flex-shrink:0;padding:0 24px;display:flex}.tbtn{cursor:pointer;color:#666;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-.5px;padding:9px 16px;font-family:inherit;font-size:13px;font-weight:500}.tbtn.act{color:#e0e0e0;border-bottom-color:#f97316}#ds{flex-direction:column;flex:1;display:flex;overflow-y:auto}.rem-sec{padding:14px 24px 8px}.sec-ttl{color:#666;text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;font-size:10px;font-weight:700}.rem-list{list-style:none}.rem-item{border-bottom:1px solid #252525;align-items:flex-start;gap:7px;padding:6px 0;display:flex}.rem-item:last-child{border-bottom:none}.rem-item input[type=checkbox]{cursor:pointer;accent-color:#f97316;flex-shrink:0;margin-top:2px}.rem-txt{color:#ccc;flex:1;font-size:13px;line-height:1.4}.rem-txt.done{color:#444;text-decoration:line-through}.rem-del{cursor:pointer;color:#444;background:0 0;border:none;flex-shrink:0;padding:0 2px;font-size:14px;line-height:1}.rem-del:hover{color:#f87171}.add-row{gap:6px;margin-top:10px;display:flex}.add-row input{color:#e0e0e0;background:#222;border:1px solid #333;border-radius:8px;outline:none;flex:1;padding:6px 9px;font-family:inherit;font-size:13px}.add-row input:focus{border-color:#555}.add-row button{color:#999;cursor:pointer;white-space:nowrap;background:#222;border:1px solid #333;border-radius:8px;padding:6px 11px;font-family:inherit;font-size:13px}.add-row button:hover{background:#2a2a2a}.file-sec{border-top:1px solid #2d2d2d;padding:10px 24px 12px}.dz{text-align:center;cursor:pointer;color:#555;background:#1a1a1a;border:1px dashed #333;border-radius:8px;padding:14px;font-size:12px;transition:background .1s,border-color .1s}.dz:hover,.dz.over{color:#999;background:#222;border-color:#666}.fcard-grid{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.fcard{background:#222;border:1px solid #333;border-radius:8px;flex-shrink:0;width:130px;overflow:hidden}.fcard-preview{cursor:pointer;background:#2a2a2a;justify-content:center;align-items:center;width:100%;height:84px;display:flex;position:relative;overflow:hidden}.fcard-preview:hover{background:#333}.fcard-preview img{object-fit:cover;width:100%;height:100%}.fcard-type-badge{color:#666;text-transform:uppercase;letter-spacing:.06em;font-size:14px;font-weight:700}.fcard-foot{border-top:1px solid #2d2d2d;align-items:center;gap:4px;padding:5px 8px 6px;display:flex}.fcard-name{color:#888;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;flex:1;min-width:0;font-size:11px;overflow:hidden}.fcard-name:hover{text-decoration:underline}.fcard-del{cursor:pointer;color:#444;background:0 0;border:none;flex-shrink:0;padding:0;font-size:14px;line-height:1}.fcard-del:hover{color:#f87171}.coll{border-top:1px solid #2d2d2d}.coll-hd{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:11px 24px;display:flex}.coll-hd:hover{background:#1a1a1a}.coll-lbl{color:#999;font-size:13px;font-weight:600}.caret{color:#555;font-size:10px;transition:transform .15s;display:inline-block}.caret.open{transform:rotate(180deg)}.coll-body{padding:4px 24px 16px}.fgrid{grid-template-columns:1fr 1fr;gap:11px 14px;display:grid}.fg-full{grid-column:1/-1}.flbl{color:#666;text-transform:uppercase;letter-spacing:.06em;margin-bottom:3px;font-size:10px;font-weight:700;display:block}.finput{color:#e0e0e0;background:#222;border:1px solid #333;border-radius:8px;outline:none;width:100%;padding:6px 9px;font-family:inherit;font-size:13px}.finput:focus{border-color:#555}textarea.finput{resize:vertical;min-height:52px;line-height:1.4}.note-row{gap:6px;margin-bottom:10px;display:flex}.note-row input{color:#e0e0e0;background:#222;border:1px solid #333;border-radius:8px;outline:none;flex:1;padding:6px 9px;font-family:inherit;font-size:13px}.note-row input:focus{border-color:#555}.note-row button{color:#999;cursor:pointer;background:#222;border:1px solid #333;border-radius:8px;padding:6px 11px;font-family:inherit;font-size:13px}.note-row button:hover{background:#2a2a2a}.alog{list-style:none}.aent{color:#888;border-bottom:1px solid #252525;padding:5px 0;font-size:12px;line-height:1.4}.aent:last-child{border-bottom:none}.atime{color:#555;font-size:11px}#moverlay{z-index:100;background:#000000bf;justify-content:center;align-items:center;display:none;position:fixed;inset:0}#moverlay.open{display:flex}#modal{background:#1e1e1e;border:1px solid #333;border-radius:8px;flex-direction:column;width:700px;max-width:96vw;max-height:92vh;display:flex}.mhd{border-bottom:1px solid #2d2d2d;flex-shrink:0;justify-content:space-between;align-items:center;padding:15px 18px;display:flex}.mttl{color:#e0e0e0;font-size:15px;font-weight:600}.mclose{cursor:pointer;color:#666;background:0 0;border:none;font-family:inherit;font-size:20px;line-height:1}.mclose:hover{color:#e0e0e0}.mbody{flex:1;padding:18px;overflow-y:auto}.mfoot{border-top:1px solid #2d2d2d;flex-shrink:0;justify-content:flex-end;gap:7px;padding:11px 18px;display:flex}.btn{cursor:pointer;color:#999;background:#222;border:1px solid #333;border-radius:8px;padding:7px 15px;font-family:inherit;font-size:13px;font-weight:500}.btn:hover{background:#2a2a2a}.btn-p{color:#fff;background:#f97316;border-color:#f97316}.btn-p:hover{background:#ea6c0c;border-color:#ea6c0c}.fsec{color:#666;text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid #2d2d2d;grid-column:1/-1;margin:14px 0 6px;padding-bottom:6px;font-size:10px;font-weight:700}.fsec:first-child{margin-top:0}.calc-val{color:#888;font-variant-numeric:tabular-nums;background:#1a1a1a;border:1px solid #333;border-radius:8px;align-items:center;min-height:32px;padding:6px 9px;font-size:13px;display:flex}.calc-val.pos{color:#4ade80;background:#0d2d16;border-color:#1a4d2a}.calc-val.neg{color:#f87171;background:#2d0a0a;border-color:#4d1a1a}.design-list{flex-direction:column;gap:5px;margin-bottom:6px;display:flex}.design-row{align-items:center;gap:6px;display:flex}.d-name{flex:2}.d-qty{flex:0 0 90px}.design-del{cursor:pointer;color:#444;background:0 0;border:none;flex-shrink:0;padding:0 2px;font-size:16px;line-height:1}.design-del:hover{color:#f87171}.design-sum{color:#666;margin-top:5px;font-size:11px}.design-sum.ok{color:#4ade80;font-weight:600}.design-sum.warn{color:#fb923c;font-weight:500}.add-design-btn{color:#777;cursor:pointer;text-align:left;background:0 0;border:1px dashed #333;border-radius:8px;width:100%;padding:6px 11px;font-family:inherit;font-size:12px}.add-design-btn:hover{color:#aaa;background:#222;border-color:#666}.d-file-btn{cursor:pointer;color:#555;background:0 0;border:1px dashed #333;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;padding:0;font-family:inherit;font-size:16px;display:flex}.d-file-btn:hover{color:#aaa;background:#222;border-color:#666}.d-file-wrap{flex-shrink:0;width:32px;height:32px;position:relative}.d-file-img{object-fit:cover;cursor:pointer;border:1px solid #333;border-radius:6px;width:32px;height:32px;display:block}.d-file-icon{color:#777;text-transform:uppercase;cursor:pointer;background:#2a2a2a;border:1px solid #333;border-radius:6px;justify-content:center;align-items:center;width:32px;height:32px;font-size:9px;font-weight:700;display:flex}.d-file-rm{color:#fff;cursor:pointer;text-align:center;background:#f87171;border:1.5px solid #111;border-radius:50%;width:16px;height:16px;padding:0;font-family:inherit;font-size:11px;line-height:13px;display:none;position:absolute;top:-5px;right:-5px}.d-file-wrap:hover .d-file-rm{display:block}
