/* Containers own layout; content retains the familiar Oilshock presentation. */
.container-dashboard{position:relative;display:grid;gap:0}.home-container{position:relative;min-width:0;scroll-margin-top:20px}.home-container.menu-open{z-index:40}
.container-divider{display:flex;align-items:center;gap:4px;min-height:44px;margin-bottom:16px;color:var(--muted)}.container-rule{height:1px;background:var(--line);flex:1;min-width:12px}
.container-grip,.container-collapse,.container-menu>summary{display:grid;place-items:center;width:32px;height:40px;padding:7px;border:0;border-radius:4px;background:transparent;color:var(--muted);flex-shrink:0;cursor:pointer}.container-grip{cursor:grab;touch-action:none;justify-items:start;padding-inline:0}.container-menu>summary{justify-items:end;padding-inline:0}.container-divider .container-grip svg{width:10px;height:20px}.container-menu>summary svg{width:18px}.container-grip:hover,.container-collapse:hover,.container-menu>summary:hover{background:var(--surface-hover);color:var(--ink)}
.container-divider svg,.content-grip svg{width:20px;height:20px;fill:currentColor}.container-collapse svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;transform:rotate(90deg)}.container-collapse[aria-expanded="false"] svg{transform:rotate(0)}
.container-menu{position:relative;margin-left:6px}.container-menu>summary{list-style:none}.container-menu>summary::-webkit-details-marker{display:none}.container-menu[open]>summary{color:var(--accent);background:var(--surface-hover)}
.container-menu-panel{position:absolute;right:0;top:calc(100% + 6px);width:250px;max-width:calc(100vw - 40px);padding:10px;border:1px solid var(--line);border-radius:5px;background:var(--surface);box-shadow:0 8px 30px #24301d22;z-index:45;overflow-y:auto}.container-menu.opens-up .container-menu-panel{top:auto;bottom:calc(100% + 6px)}.container-menu-panel button{display:block;width:100%;min-height:42px;text-align:left;padding:10px;border:0;border-radius:3px;background:transparent;color:var(--ink);font:400 14px var(--sans);cursor:pointer}.container-menu-panel button:hover:not(:disabled){background:var(--surface-hover)}.container-menu-panel button:disabled{opacity:.35;cursor:default}.container-menu-panel .container-remove{border-top:1px solid var(--line);border-radius:0;margin-top:8px;padding-top:14px}.container-menu-panel .container-reset{font-size:12px;color:var(--muted)}
.container-columns{display:grid;gap:24px;align-items:start}.container-columns[hidden]{display:none}.container-column{position:relative;min-width:0;min-height:70px;display:flex;flex-direction:column;gap:22px;align-self:stretch}.container-column:not(.column-empty)>.column-add{position:absolute;bottom:-22px;left:50%;transform:translateX(-50%);z-index:9;white-space:nowrap;background:var(--paper)}.container-column.column-empty{min-height:160px;border:1px dashed var(--line);border-radius:4px;background:#fff4;justify-content:center}.column-add{display:block;align-self:center;min-height:44px;padding:10px 16px;border:0;background:transparent;color:var(--muted);font:400 13px var(--sans);cursor:pointer;border-radius:4px;opacity:0}.column-add:hover{background:var(--surface-hover);color:var(--ink)}.column-empty .column-add,.container-column:hover>.column-add,.column-add:focus-visible{opacity:1}
.content-block{position:relative;min-width:0;scroll-margin-top:25px}.content-body{min-width:0;container-type:inline-size;overflow:hidden}.content-grip{position:absolute;right:8px;top:-12px;z-index:8;width:30px;height:28px;display:grid;place-items:center;padding:3px;border:1px solid var(--line);border-radius:4px;background:var(--paper);color:var(--muted);cursor:grab;touch-action:none;opacity:0}.content-block:hover>.content-grip,.content-block:focus-within>.content-grip,.content-grip:focus-visible{opacity:1}
.content-body .news-section{padding:4px 0 20px}.content-body .side-card{margin:0;padding:22px}.content-body .news-list{max-width:none}.content-body .side-card h2{font-size:12px;margin-bottom:18px}.content-body .chart-frame{height:440px}.content-body .release-list{gap:18px}.content-body .release-list a,.content-body .side-card>a{font-size:14px}.content-body .release-list time{font-size:13px}
.content-body [data-ref="home-energy-board"]{min-height:385px}.content-body .energy-card .tradingview-widget-container{height:auto}.content-body .energy-card .tradingview-widget-container__widget{height:360px}.content-body .energy-card .tradingview-widget-copyright{height:auto;min-height:29px;text-align:center;font-size:11px}
.dashboard-bottom{margin:36px 0 20px;text-align:center}.dashboard-bottom>button{width:100%;min-height:54px;display:flex;align-items:center;justify-content:center;gap:10px;padding:14px;border:1px dashed var(--line);border-radius:4px;background:transparent;color:var(--muted);font:400 14px var(--sans);cursor:pointer}.dashboard-bottom>button:hover{border-color:var(--accent);color:var(--ink)}.dashboard-bottom p,.dashboard-empty{font-size:12px;color:var(--muted);line-height:1.6}.dashboard-empty{padding:32px;text-align:center}
/* Visual column picker and content library. */
.canvas-dialog{width:min(1020px,calc(100vw - 48px));max-width:none;max-height:calc(100dvh - 48px);padding:0;border:1px solid var(--line);border-radius:7px;background:var(--paper);color:var(--ink);box-shadow:0 24px 80px #15201835;overflow:auto}.canvas-dialog::backdrop{background:#18221b65;backdrop-filter:blur(3px)}.canvas-dialog-heading{display:flex;align-items:start;justify-content:space-between;gap:20px;padding:26px 30px 22px;border-bottom:1px solid var(--line)}.canvas-eyebrow{font:600 10px/1.5 var(--sans);letter-spacing:1.7px;color:var(--accent)}.canvas-dialog h2{font:600 30px/1.2 var(--display);letter-spacing:-1px;margin:8px 0 10px}.canvas-dialog-heading p{font-size:14px;color:var(--muted);line-height:1.6;margin:0}.canvas-dialog-heading>button{width:44px;height:44px;border:0;background:transparent;color:var(--muted);font-size:28px;cursor:pointer;flex-shrink:0}.canvas-dialog-body{padding:24px 30px}.canvas-field{display:grid;gap:8px;font-size:13px;color:var(--muted);margin-bottom:22px}.canvas-field input,.canvas-field select{min-height:44px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:4px;padding:10px;font:400 15px var(--sans);width:100%}
.column-layouts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.layout-choice{min-width:0;border:1px solid var(--line);border-radius:4px;background:transparent;color:var(--muted);padding:12px;cursor:pointer;text-align:center}.layout-choice[aria-pressed="true"]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:#d6633508;color:var(--ink)}.layout-sketch{height:58px;display:grid;gap:5px;margin-bottom:10px}.layout-sketch>span{display:grid;place-items:center;background:#858a7e55;font:400 10px var(--sans);color:var(--ink);min-width:0;border-radius:1px}.layout-choice>span:last-child{font-size:11px;line-height:1.5;display:block}.canvas-dialog-footer{display:flex;justify-content:flex-end;gap:10px;position:sticky;bottom:0;background:var(--paper);border-top:1px solid var(--line);padding:16px 24px;z-index:5}.canvas-dialog-footer button,.content-order-actions button{min-height:44px;padding:10px 17px;border:1px solid var(--line);border-radius:4px;background:transparent;color:var(--ink);font:400 14px var(--sans);cursor:pointer}.canvas-dialog-footer .canvas-primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.library-dialog{width:min(780px,calc(100vw - 48px))}.library-target{display:grid;grid-template-columns:2fr 1fr;gap:16px}.canvas-dialog h3{font:600 14px var(--sans);margin:5px 0 16px}.content-catalogue{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:26px}.catalogue-card{padding:20px;border:1px solid var(--line);border-radius:4px;background:var(--surface);text-align:left;color:var(--ink);cursor:pointer;min-height:95px}.catalogue-card:hover{border-color:var(--accent)}.catalogue-card strong{display:block;font:600 17px var(--display);letter-spacing:-.3px;margin-bottom:8px}.catalogue-card span{font:400 12px/1.6 var(--sans);color:var(--muted)}.available-content{display:grid;gap:8px}.available-block{min-height:44px;border:1px solid var(--line);background:transparent;color:var(--ink);font-size:14px;padding:12px;text-align:left;cursor:pointer;border-radius:4px}.move-dialog{width:min(500px,calc(100vw - 48px))}.content-order-actions{display:flex;gap:10px;margin-bottom:24px}.canvas-text-button{background:transparent;border:0;padding:10px 0;color:var(--muted);font-size:14px;text-decoration:underline;text-underline-offset:4px;cursor:pointer}
/* Persisted changes remain reversible without an editing mode. */
.dashboard-notice{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);z-index:60;display:flex;align-items:center;gap:14px;width:max-content;max-width:calc(100vw - 32px);padding:12px 16px;border:1px solid var(--line);border-radius:5px;background:var(--surface);box-shadow:0 5px 24px #24301d20}.dashboard-notice[hidden]{display:none}.dashboard-notice p{font-size:13px;line-height:1.5;margin:0;max-width:470px}.dashboard-notice button{background:transparent;border:0;min-height:40px;padding:6px;color:var(--ink);cursor:pointer}.dashboard-notice #layout-undo{font-size:13px;text-decoration:underline;text-underline-offset:4px}.dashboard-notice #notice-dismiss{font-size:22px;color:var(--muted)}
.canvas-dragging{user-select:none}.canvas-dragging iframe{pointer-events:none}.canvas-dragging .container-column{outline:1px dashed #d6633555}.canvas-source{opacity:.35}.canvas-drop{position:absolute;z-index:50;height:44px;border:2px dashed var(--accent);border-radius:4px;background:#fbf2e9ef;color:#874420;display:grid;place-items:center;pointer-events:none;box-shadow:0 0 0 4px var(--paper);font:400 12px var(--sans);text-align:center;padding:4px}.canvas-drop[hidden]{display:none}.canvas-ghost{position:fixed;z-index:100;pointer-events:none;background:var(--ink);color:var(--paper);border-radius:4px;box-shadow:0 6px 25px #18221b30;padding:10px 15px;font:400 13px var(--sans)}
@container(max-width:500px){.content-body .market-topline{padding:10px;flex-wrap:wrap;gap:8px}.content-body .chart-links{margin-left:auto}.content-body .range-controls{display:flex;flex-wrap:wrap;padding:8px 10px;gap:1px}.content-body .range-controls button{font-size:12px;min-height:38px;padding:8px 10px}.content-body .chart-options{padding:0}.content-body .benchmark{font-size:12px;padding:9px}.content-body .news-heading{gap:10px}.content-body .news-heading h2{font-size:27px}.content-body .news-row h3{font-size:18px}.content-body .news-filters button{font-size:12px;padding:8px}.content-body .side-card{padding:18px}.content-body .chart-frame{padding:4px;height:360px}.content-body .external-chart{font-size:0}.content-body .external-chart span{font-size:16px;margin-left:6px}.content-body .unit-label{font-size:9px}}
@container(max-width:260px){.content-body .market-topline{display:block}.content-body .chart-links{justify-content:flex-end;margin-top:8px}.content-body .benchmark-controls{flex-wrap:wrap}.content-body .news-heading{display:block}.content-body .news-heading h2{font-size:23px}.content-body .news-heading .all-news{display:block;font-size:12px;padding:8px 0}.content-body .news-row h3{font-size:16px}.content-body .news-meta{font-size:10px}.content-body .news-toolbar{gap:6px}.content-body .side-card{padding:12px}.content-body .range-controls button{font-size:11px;padding:7px}.content-body .news-source{overflow-wrap:anywhere}}
@media(max-width:900px){.container-column:not(.column-empty)>.column-add{position:static;transform:none;margin-top:-10px}.container-columns{grid-template-columns:minmax(0,1fr)!important;gap:24px}.container-dashboard{gap:0}.column-layouts{grid-template-columns:repeat(3,minmax(0,1fr))}.column-add,.content-grip{opacity:1}.content-grip{right:6px;top:-8px}.content-body{padding-top:9px}.container-grip,.container-collapse,.container-menu>summary{width:36px;height:44px}}
@media(max-width:500px){.canvas-dialog,.library-dialog,.move-dialog{width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}.canvas-dialog-heading{padding:22px 20px}.canvas-dialog h2{font-size:27px}.canvas-dialog-body{padding:20px}.column-layouts{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.layout-sketch{height:55px;gap:3px}.layout-choice{padding:9px}.layout-sketch>span{font-size:9px}.canvas-field input,.canvas-field select{font-size:16px}.library-target{grid-template-columns:1fr}.content-catalogue{gap:10px}.catalogue-card{padding:16px}.catalogue-card strong{font-size:16px}.dashboard-notice{gap:10px;padding:9px 12px;bottom:12px}.dashboard-notice p{font-size:12px}.canvas-dialog-footer{padding:14px 20px}.container-columns{gap:22px}}

/* White widget surfaces stay within the content margins, with gray gutters. */
.content-block{background:#fff;isolation:isolate}
.content-body,.content-body>.side-card,.content-body>.news-section{background:#fff}
.container-divider{gap:0}
.container-divider .container-grip{width:16px}
.container-divider .container-collapse{width:20px;padding-inline:0;justify-items:start}
.container-divider .container-menu{margin-left:0}
.container-divider .container-menu>summary{width:24px}

.home-container{background:transparent;isolation:isolate;padding-block:8px 0}
.home-container:has(>.container-columns[hidden])>.container-divider{margin-bottom:0}

/* Quote widgets use the same movable frame and column rules as every widget. */
.quote-tile{min-width:0;padding:12px 16px;background:#fff}
.quote-tile .quote-widget{min-height:133px}
.quote-tile .quote-error{font-size:12px;margin:8px 0;color:var(--muted)}

/* Keep the toolbar inset and quiet; fade only its artwork, never its menu. */
.container-divider{min-height:32px;padding:2px 16px;margin-bottom:8px;background:transparent}
.container-divider .container-grip,.container-divider .container-collapse,.container-divider .container-menu>summary{height:28px;padding-block:4px}
.container-divider .container-grip svg,.container-divider .container-collapse svg,.container-divider .container-menu>summary svg{opacity:.75;transition:opacity .16s ease}
.container-divider .container-rule{opacity:.45;transition:opacity .16s ease}
.container-divider:hover .container-grip svg,.container-divider:hover .container-collapse svg,.container-divider:hover .container-menu>summary svg,.container-divider:focus-within .container-grip svg,.container-divider:focus-within .container-collapse svg,.container-divider:focus-within .container-menu>summary svg{opacity:1}
.container-divider:hover .container-rule,.container-divider:focus-within .container-rule{opacity:1}
@media(max-width:900px){.container-divider{min-height:40px;padding-inline:12px}.container-divider .container-grip,.container-divider .container-collapse,.container-divider .container-menu>summary{height:36px}}
@media(prefers-reduced-motion:reduce){.container-divider svg,.container-divider .container-rule{transition:none}}

/* Names identify minimized containers without crowding expanded toolbars. */
.container-name{min-width:0;max-width:min(50%,400px);margin-right:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:400 13px/1.4 var(--sans);color:color-mix(in srgb,var(--line) 60%,transparent)}
.container-name[hidden]{display:none}
/* One shared artwork color keeps icons and the rule visually consistent. */
.container-divider{--toolbar-art:color-mix(in srgb,var(--line) 60%,transparent)}
.container-divider .container-grip,.container-divider .container-collapse,.container-divider .container-menu>summary{color:var(--toolbar-art)}
.container-divider .container-grip svg,.container-divider .container-collapse svg,.container-divider .container-menu>summary svg{opacity:1}
.container-divider .container-rule{background:var(--toolbar-art);opacity:1}
.content-block,.content-body,.content-body>:first-child{border-radius:20px}
@media(max-width:640px){.content-block,.content-body,.content-body>:first-child{border-radius:16px}}

.content-body>.news-section{padding:20px 22px}
@container(max-width:500px){.content-body>.news-section{padding:18px}}

/* Homepage chart widgets use the same borderless surface as quote widgets. */
.content-body>.market{border:0;box-shadow:none}

.news-toolbar[hidden]{display:none}
.content-body .news-filters{border:0;padding-bottom:8px}
.content-body .news-list{border-top:0}

.content-body .news-toolbar{padding:8px 0}
.content-body .news-toolbar p{margin:0;font:400 var(--type-caption)/1.4 var(--sans);color:var(--muted)}
