:root{--ink:#1c2430;--ink-soft:#3d4a5c;--muted:#6b7a8d;--paper:#eef2f6;--panel:#ffffffb8;--panel-solid:#f7f9fb;--line:#1c24301a;--accent:#2f6f6a;--accent-2:#c4784a;--up:#1f7a4d;--down:#b33a3a;--shadow:0 18px 50px #1c243014;--radius:18px;--font-display:"Syne", sans-serif;--font-body:"IBM Plex Sans", sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{color:var(--ink);font-family:var(--font-body);background-color:#0000;background-image:radial-gradient(1200px 600px at 10% -10%,#2f6f6a2e,#0000 55%),radial-gradient(900px 500px at 100% 0,#c4784a29,#0000 50%),linear-gradient(160deg,#e8eef4 0%,#f3f6f9 45%,#e7edf3 100%);background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:auto,auto,auto;background-attachment:fixed;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;margin:0}body:before{content:"";pointer-events:none;opacity:.35;background-image:linear-gradient(#1c243008 1px,#0000 1px),linear-gradient(90deg,#1c243008 1px,#0000 1px);background-size:48px 48px;position:fixed;inset:0;-webkit-mask-image:radial-gradient(#000 30%,#0000 75%);mask-image:radial-gradient(#000 30%,#0000 75%)}button,input,select,textarea{font:inherit}a{color:inherit}.app-shell{z-index:1;width:min(1280px,100% - 2rem);margin:0 auto;padding:1.25rem 0 3rem;position:relative}.widget-grid{grid-template-columns:repeat(12,1fr);gap:1rem;display:grid}.widget{background:var(--panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.1rem 1.15rem 1.2rem;animation:.7s both rise}.widget:first-child{animation-delay:50ms}.widget:nth-child(2){animation-delay:.12s}.widget:nth-child(3){animation-delay:.18s}.widget:nth-child(4){animation-delay:.24s}.widget.span-7{grid-column:span 7}.widget.span-5{grid-column:span 5}.widget.span-12{grid-column:span 12}.widget.span-6{grid-column:span 6}.widget-head{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.widget-head h2{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:1.15rem}.ghost-btn,.primary-btn{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#ffffffa6;border-radius:999px;padding:.4rem .85rem;transition:transform .2s,background .2s,border-color .2s}.ghost-btn:hover,.primary-btn:hover{border-color:#2f6f6a59;transform:translateY(-1px)}.primary-btn{background:var(--ink);color:#fff;border-color:var(--ink)}.clock-grid,.weather-grid,.indices-grid{gap:.75rem;display:grid}.clock-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.clock-card,.weather-card,.index-card{background:var(--panel-solid);border:1px solid var(--line);border-radius:14px;padding:.85rem .9rem;position:relative}.clock-card .label,.weather-card .label,.index-card .label{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:.78rem}.clock-card .time{font-family:var(--font-display);letter-spacing:-.03em;margin:.25rem 0 .1rem;font-size:1.55rem}.clock-card .date,.weather-card .meta{color:var(--muted);font-size:.82rem}.remove-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:.15rem;font-size:1rem;line-height:1;position:absolute;top:.45rem;right:.45rem}.weather-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.weather-card .temp{font-family:var(--font-display);letter-spacing:-.04em;margin:.2rem 0;font-size:2rem}.indices-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.index-card .price{font-family:var(--font-display);margin:.35rem 0 .15rem;font-size:1.25rem}.change.up{color:var(--up)}.change.down{color:var(--down)}.news-layout{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.news-col h3{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:0 0 .75rem;font-size:.85rem}.news-list{gap:.7rem;margin:0;padding:0;list-style:none;display:grid}.news-list a{font-size:.92rem;line-height:1.35;text-decoration:none;transition:color .2s;display:block}.news-list a:hover{color:var(--accent)}.news-list .src{color:var(--muted);margin-top:.2rem;font-size:.75rem;display:block}.modal-backdrop{z-index:50;background:#1c243073;place-items:center;padding:1rem;animation:.2s fade;display:grid;position:fixed;inset:0}.modal{width:min(420px,100%);box-shadow:var(--shadow);background:#fff;border-radius:16px;padding:1.25rem}.modal h3{font-family:var(--font-display);margin:0 0 .85rem}.modal form{gap:.7rem;display:grid}.modal label{color:var(--ink-soft);gap:.3rem;font-size:.85rem;display:grid}.modal input,.modal select{border:1px solid var(--line);background:#fff;border-radius:10px;padding:.55rem .7rem}.modal-actions{justify-content:flex-end;gap:.5rem;margin-top:.4rem;display:flex}.empty,.error,.loading{color:var(--muted);font-size:.9rem}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes pulse{0%{box-shadow:0 0 #2f6f6a73}70%{box-shadow:0 0 0 10px #2f6f6a00}to{box-shadow:0 0 #2f6f6a00}}@media (width<=960px){.widget.span-7,.widget.span-5,.widget.span-6,.widget.span-12{grid-column:span 12}.news-layout{grid-template-columns:1fr}}
