/* Toronto Wedding workspace — isolated to #toronto */
#toronto { --tw-ink:#30282d; --tw-slate:#756d70; --tw-line:#e9dee3; --tw-blush:#f5e7ec; --tw-plum:#6b3348; --tw-green:#286c57; --tw-bg:#fcf9fa; font-family:Inter, system-ui, sans-serif; color:var(--tw-ink); padding-bottom:60px; }
#toronto * { box-sizing:border-box; }
#toronto .tw-header { background:linear-gradient(110deg,#3d2832,#784659); color:white; padding:30px 32px; border-radius:18px; margin-bottom:22px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
#toronto .tw-eyebrow { text-transform:uppercase; letter-spacing:.13em; font-size:11px; font-weight:800; opacity:.75; margin:0 0 8px; }
#toronto .tw-header h2 { font-family:Georgia,serif; font-size:clamp(25px,3.5vw,39px); font-weight:500; line-height:1.18; margin:0 0 9px; color:#fff; }
#toronto .tw-header p:last-child { opacity:.83; margin:0; font-size:13px; }
#toronto .tw-actions { display:flex; gap:8px; flex-wrap:wrap; }
#toronto .tw-btn { border-radius:9px; border:1px solid #cdbfc6; background:#fff; color:var(--tw-ink); font-weight:700; padding:10px 14px; font-size:12px; width:auto; min-width:max-content; transition:transform .12s, box-shadow .12s; }
#toronto .tw-btn:hover { transform:translateY(-1px); box-shadow:0 3px 10px #3925321a; }
#toronto .tw-btn:focus-visible { outline:3px solid #bf91a8; outline-offset:2px; }
#toronto .tw-btn-primary { background:#6b3348; border-color:#6b3348; color:white; }
#toronto .tw-btn-header { border-color:#ffffff66; background:#ffffff1e; color:white; }
#toronto .tw-btn-quiet { background:transparent; }
#toronto .tw-tabs { display:flex; gap:6px; border-bottom:1px solid var(--tw-line); padding:0 0 10px; margin-bottom:20px; flex-wrap:wrap; }
#toronto .tw-tab { color:#756d70; background:transparent; border:0; padding:10px 16px; border-radius:9px; font-weight:700; font-size:13px; width:auto; }
#toronto .tw-tab[aria-selected="true"] { background:var(--tw-blush); color:var(--tw-plum); }
#toronto .tw-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:0 0 20px; }
#toronto .tw-kpi,#toronto .tw-card { background:#fff; border:1px solid var(--tw-line); border-radius:15px; }
#toronto .tw-kpi { padding:18px; }
#toronto .tw-kpi .tw-label { font-size:11px; color:var(--tw-slate); font-weight:700; text-transform:uppercase; letter-spacing:.07em; }
#toronto .tw-kpi strong { display:block; margin:10px 0 4px; font-size:clamp(20px,2.3vw,29px); letter-spacing:-.035em; }
#toronto .tw-kpi small { color:var(--tw-slate); font-size:11px; }
#toronto .tw-pane[hidden] { display:none!important; }
#toronto .tw-card { padding:20px; margin-bottom:16px; }
#toronto .tw-card h3 { font-family:Georgia,serif; font-size:22px; margin:0 0 6px; }
#toronto .tw-card p.tw-hint { font-size:12px; color:var(--tw-slate); margin:0 0 16px; line-height:1.6; }
#toronto .tw-card-head { display:flex; align-items:start; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:14px; }
#toronto .tw-form-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
#toronto .tw-form-grid .tw-span2 { grid-column:span 2; }
#toronto .tw-form-grid .tw-span4 { grid-column:1/-1; }
#toronto label { display:flex; flex-direction:column; gap:6px; font-size:11px; color:#62595f; font-weight:750; }
#toronto input,#toronto select,#toronto textarea { font-size:13px; border:1px solid #d8cbd1; border-radius:9px; padding:10px 11px; width:100%; max-width:100%; color:#30282d; background:#fff; }
#toronto input:focus,#toronto select:focus,#toronto textarea:focus { outline:2px solid #be9cae; outline-offset:1px; }
#toronto label.tw-check { display:flex; flex-direction:row; align-items:center; gap:7px; font-size:12px; font-weight:600; }
#toronto label.tw-check input { width:15px; height:15px; }
#toronto .tw-row { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
#toronto .tw-between { justify-content:space-between; }
#toronto .tw-mini { color:var(--tw-slate); font-size:11px; line-height:1.55; }
#toronto .tw-alert { font-size:12px; padding:11px 13px; border:1px solid #ead4b7; background:#fffaf0; border-radius:9px; color:#7d5628; line-height:1.5; }
#toronto .tw-good { color:var(--tw-green); font-weight:800; }
#toronto .tw-bad { color:#b34b57; font-weight:800; }
#toronto .tw-table-wrap { width:100%; overflow-x:auto; }
#toronto table { border-collapse:collapse; min-width:770px; width:100%; font-size:12px; }
#toronto th { background:#faf6f8; color:#695f64; font-size:11px; letter-spacing:.02em; text-align:left; padding:12px 9px; white-space:nowrap; }
#toronto td { padding:12px 9px; border-top:1px solid #f0e8ec; vertical-align:middle; }
#toronto td strong { font-size:12px; }
#toronto td small { display:block; color:#7a7276; margin-top:3px; }
#toronto .tw-table-actions { display:flex; gap:6px; flex-wrap:wrap; }
#toronto .tw-table-actions button { width:auto; padding:6px 8px; font-size:11px; border:1px solid #e0d0d6; border-radius:7px; background:white; }
#toronto .tw-summary { padding:14px; background:#faf3f6; border-radius:11px; margin-top:14px; }
#toronto .tw-summaryline { display:flex; justify-content:space-between; gap:15px; padding:8px 0; border-bottom:1px solid #eadde2; font-size:12px; }
#toronto .tw-summaryline:last-child { border-bottom:0; font-size:18px; font-weight:800; }
#toronto .tw-grid2 { display:grid; grid-template-columns:1.2fr .8fr; gap:16px; }
#toronto .tw-progress { height:9px; background:#f0e5e9; border-radius:15px; overflow:hidden; margin:10px 0; }
#toronto .tw-progress>span { display:block; height:100%; background:#926175; }
#toronto .tw-statrow { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:13px 0; border-bottom:1px solid #efe8eb; font-size:13px; }
#toronto .tw-statrow strong { font-variant-numeric:tabular-nums; }
#toronto .tw-task { display:flex; gap:10px; align-items:start; border-bottom:1px solid #eee4e9; padding:12px 0; }
#toronto .tw-task input[type="checkbox"] { width:17px; height:17px; margin-top:2px; flex-shrink:0; accent-color:#6b3348; }
#toronto .tw-task strong { display:block; font-size:13px; }
#toronto .tw-task small { display:block; font-size:11px; color:#85777d; margin-top:4px; }
#toronto .tw-task.tw-done strong { text-decoration:line-through; color:#93848a; }
#toronto .tw-budget-input { max-width:145px!important; text-align:right; }
#toronto #tw-notice { min-height:22px; font-size:12px; margin:12px 0; color:var(--tw-green); }
#toronto #tw-notice[role="alert"] { color:#a13e4c; }
#toronto .tw-footer { font-size:11px; line-height:1.6; color:#887780; margin-top:16px; }
#toronto .tw-empty { text-align:center; padding:32px; color:#84787d; font-size:13px; }
#toronto .tw-chip { display:inline-block; border-radius:50px; padding:4px 9px; background:#f4e7ec; color:#69374b; font-size:10px; font-weight:800; }
#toronto .tw-compare { display:grid; grid-template-columns:repeat(auto-fit,minmax(205px,1fr)); gap:12px; }
#toronto .tw-compare article { border-radius:13px; border:1px solid #e7d9de; padding:14px; background:#fffcfd; }
#toronto .tw-compare h4 { margin:0 0 5px; font-family:Georgia,serif; font-size:18px; }
#toronto .tw-compare .tw-price { font-size:24px; font-weight:850; margin:12px 0 5px; }
@media(max-width:1100px){#toronto .tw-form-grid {grid-template-columns:repeat(2,minmax(0,1fr));} #toronto .tw-form-grid .tw-span4{grid-column:1/-1} #toronto .tw-grid2{grid-template-columns:1fr} #toronto .tw-kpis{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:680px){#toronto .tw-header{flex-direction:column;align-items:stretch;padding:22px} #toronto .tw-header h2{font-size:28px} #toronto .tw-kpis{grid-template-columns:repeat(2,minmax(0,1fr))} #toronto .tw-form-grid{grid-template-columns:1fr} #toronto .tw-form-grid .tw-span2{grid-column:1/-1} #toronto .tw-card{padding:15px} #toronto .tw-tabs{gap:2px} #toronto .tw-tab{padding:9px 10px}}
@media print { .sidebar,.topbar,#toronto .tw-tabs,#toronto .tw-header .tw-actions,#toronto .tw-row button {display:none!important;} .app-shell{display:block!important;} #toronto{display:block!important;} }

